Applicable to:
- Plesk for Linux
Question
How to set spam filter settings for a batch of email accounts while avoiding configuration of Spamassassin on server level in Plesk for Linux?
Answer
Plesk GUI and spamasassin
utility do not support multiple mail accounts management at once. Instead, the following command can be used to update multiple mailboxes simultaneously. This command will enable Spamassassin on all mailboxes (if disabled), set 5 hits required for marking a message as spam, set spam messages to be deleted:
# plesk db -Ne"SELECT CONCAT(mail_name,'@',name) FROM mail,domains WHERE dom_id=domains.id AND postbox='true';"| while read i;do /usr/local/psa/bin/spamassassin -u $i -status true -action del -hits 5;done
In case messages detected as spam should be moved to spam folder, the following command can be used instead:
# plesk db -Ne"SELECT CONCAT(mail_name,'@',name) FROM mail,domains WHERE dom_id=domains.id AND name='example.com' AND postbox='true';"| while read i;do /usr/local/psa/bin/spamassassin -u $i -status true -action move -hits 7;done
In case it's required to disable SpamAssassin on mailboxes from a specific domain:
# plesk db -Ne"SELECT CONCAT(mail_name,'@',name) FROM mail,domains WHERE dom_id=domains.id AND name='example.com' AND postbox='true';"| while read i;do /usr/local/psa/bin/spamassassin -u $i -status false;done
Comments
1 comment
the above examples seem to have a typo, this works: plesk db -Ne "SELECT CONCAT(mail_name,'@',name) FROM mail,domains WHERE dom_id=domains.id AND postbox='true';" | while read i; do plesk bin spamassassin --update $i -status true -hits 3 -action move; done
Please sign in to leave a comment.