Question
How to set spam filter settings for bunch of email accounts 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 should be used to update multiple mailboxes simultaneously:
# 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
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
Or if such messages detected as spam should be moved to spam folder, then this can be used:
# 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 needed 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
Additional information
For details about spam settings management via Plesk CLI, visit:
213412289 [How to] Manage spam settings in Plesk via CLI?