[pmg-devel] Suggestion
Luiz Carlos G. P. C. Branco
meedhos at gmail.com
Mon Jun 17 15:33:26 CEST 2019
Helo, my name is Luiz and I installed the PMG last mounth. I'm really
impressed about the quality of this product, so I'm sending this e-mail
first to congrats your team.
I would like to give some feedbacks, about some things that you can
considered in next versions:
- In proofpoint I can set a maximum recipient per message, that reject the
message AFTER sent. In PMG, if I set a "smtpd_recipient_limit" for postfix,
my Exchange Server "understand" the limit and split the recipient in
multiple messages (with different IDs), so the "smtpd_recipient_limit" do
not avoid some real problems (like a virus, sending e-mails for THOUSAND
recipients). If could be possible create a RULE, in (Mail Filter menu) to
maximum recipients (as Who), the message was putted in the queue, the
pmg-filter SUM the recipients and decide the action (like block) I think
will be a great feature.
- In the Quarantine Page (the webpage, not the report), a lot of my users
didn't understand "some many" options (whitelist, blacklist, deliver and
delete), I think could be easier with just two buttons, like Trust (to
whistelist+deliver) and Block (to blacklist+delete), I attach the changes
needed in the code to do this, as a suggestion.
Sorry for any mistakes, my english is not so good as I wantted.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pve.proxmox.com/pipermail/pmg-devel/attachments/20190617/222308ea/attachment.html>
-------------- next part --------------
In /usr/share/perl5/PMG/API2/Quarantine.pm:
CHANGE enum => ['whitelist', 'blacklist', 'deliver', 'delete'], TO enum => ['whitelist', 'blacklist', 'deliver', 'delete', 'blacklistanddelete', 'whitelistanddeliver'],
CHANGE
if ($action eq 'whitelist') {
PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'WL', [ $sender ]);
} elsif ($action eq 'blacklist') {
PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'BL', [ $sender ]);
} elsif ($action eq 'deliver') {
PMG::Quarantine::deliver_quarantined_mail($dbh, $ref, $ref->{receiver} // $ref->{pmail});
} elsif ($action eq 'delete') {
PMG::Quarantine::delete_quarantined_mail($dbh, $ref);
} else {
die "internal error"; # should not be reached
}
TO
if ($action eq 'whitelist') {
PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'WL', [ $sender ]);
} elsif ($action eq 'blacklist') {
PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'BL', [ $sender ]);
} elsif ($action eq 'deliver') {
PMG::Quarantine::deliver_quarantined_mail($dbh, $ref, $ref->{receiver} // $ref->{pmail});
} elsif ($action eq 'delete') {
PMG::Quarantine::delete_quarantined_mail($dbh, $ref);
} elsif ($action eq 'blacklistanddelete') {
PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'BL', [ $sender ]);
PMG::Quarantine::delete_quarantined_mail($dbh, $ref);
} elsif ($action eq 'whitelistanddeliver') {
PMG::Quarantine::add_to_blackwhite($dbh, $ref->{pmail}, 'WL', [ $sender ]);
PMG::Quarantine::deliver_quarantined_mail($dbh, $ref, $ref->{receiver} // $ref->{pmail});
} else {
die "internal error"; # should not be reached
}
In /usr/share/javascript/pmg-gui/js/pmgmanagerlib.js
CHANGE
'-',
{
reference: 'whitelist',
text: gettext('Whitelist'),
iconCls: 'fa fa-check',
handler: 'btnHandler'
},
{
reference: 'blacklist',
text: gettext('Blacklist'),
iconCls: 'fa fa-times',
handler: 'btnHandler'
},
{
reference: 'deliver',
text: gettext('Deliver'),
iconCls: 'fa fa-paper-plane-o',
handler: 'btnHandler'
},
{
reference: 'delete',
text: gettext('Delete'),
iconCls: 'fa fa-trash-o',
handler: 'btnHandler'
}
TO
'-',
/*
{
reference: 'whitelist',
text: gettext('Whitelist'),
iconCls: 'fa fa-check',
handler: 'btnHandler'
},
{
reference: 'blacklist',
text: gettext('Blacklist'),
iconCls: 'fa fa-times',
handler: 'btnHandler'
},
{
reference: 'deliver',
text: gettext('Deliver'),
iconCls: 'fa fa-paper-plane-o',
handler: 'btnHandler'
},
{
reference: 'delete',
text: gettext('Delete'),
iconCls: 'fa fa-trash-o',
handler: 'btnHandler'
}
*/
{
reference: 'whitelistanddeliver',
text: gettext('Trust'),
iconCls: 'fa fa-check',
handler: 'btnHandler'
},
{
reference: 'blacklistanddelete',
text: gettext('Block'),
iconCls: 'fa fa-times',
handler: 'btnHandler'
}
CHANGE
root: {
expanded: true,
children: [
{
text: gettext('Spam Quarantine'),
iconCls: 'fa fa-cubes',
path: 'pmgSpamQuarantine',
expanded: true,
children: [
{
text: gettext('Whitelist'),
iconCls: 'fa fa-file-o',
path: 'pmgUserWhitelist',
leaf: true
},
{
text: gettext('Blacklist'),
iconCls: 'fa fa-file',
path: 'pmgUserBlacklist',
leaf: true
}
]
}
]
}
TO
root: {
expanded: true,
children: [
{
text: gettext('Spam Quarantine'),
iconCls: 'fa fa-cubes',
path: 'pmgSpamQuarantine',
expanded: true,
children: [
{
text: gettext('Trusted'),
iconCls: 'fa fa-file-o',
path: 'pmgUserWhitelist',
leaf: true
},
{
text: gettext('Blocked'),
iconCls: 'fa fa-file',
path: 'pmgUserBlacklist',
leaf: true
}
]
}
]
}
More information about the pmg-devel
mailing list