Bisher habe ich es über öffentliche (shared folders) Ordner gehändelt um SpamAssassin zu sagen, was Spam und was kein Spam ist. Der Nachteil besteht darin, dass viele Mail (Anfänger) und auch Mail Clients damit nicht richtig klarkommen.
Evolution beispielsweise will keine öffentliche Ordner (seit irgendeiner Version, mehr) anzeigen, wenn Cyrus die Option
unixhierarchysep: yes
nutzt. Sie lassen sich einfach nicht mehr einblenden.
Durch Zufall fand ich diese Seite, wo sich ein Script finden lässt, dass alle (Imap) User Unterverzeichnisse absucht, nach den Ordnern _Ist-doch-Spam und _Ist-kein-Spam.
Findet das Script eben diese, werden die darin enthaltenen Mails ‚erlernt‘ und dann entfernt.
Da das original Script auf meiner amavis-cyrus Installation so nicht läuft, habe ich eine angepasste Version hier bereitgestellt. Die wichtigsten Parameter finden sich in der /etc/mail/sa-learn-cyrus.conf:
spam folder relative to INBOX (cyrus nomenclature: e.g. ‘junk.Spam’)
spam_folder = ‘_Ist-doch-Spam’
ham folder relative to INBOX (cyrus nomenclature: e.g. ‘junk.Ham’)
ham_folder = ‘_Ist-kein-Spam’
remove spam after feeding it to SA
remove_spam = yes
remove ham after feeding it to SA
remove_ham = no
path to sa-learn
learn_cmd = /usr/bin/sa-learn
SA user and group
user = amavis group = amavis
if base_dir has subdivisions with initial letters of mailbox names
set initial_letter = yes (default), otherwise choose no
Example for joe’s mailbox:
yes: <base_dir>/j/user/joe/
no: </base_dir><base_dir>/user/joe/
initial_letter = no
imap command to purge mail messages
purge_cmd = /usr/sbin/ipurge
</base_dir>
Diese Parameter habe ich anpassen müssen.
Des weiteren musste ich die Pfade und Ordner in der Datei /etc/cron.hourly/sa-learn-cyrus anpassen:
[mailbox]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
'mailbox:include_list' => 'hjb', 'mailbox:include_regexp' => '.*', 'mailbox:exclude_list' => '1', 'mailbox:exclude_regexp' => '', 'mailbox:spam_folder' => '_Ist-doch_Spam', 'mailbox:remove_spam' => 'no', 'mailbox:ham_folder' => '_Ist-kein-Spam', 'mailbox:remove_ham' => 'no', # [sa] 'sa:site_config_path' => '/etc/mail/spamassassin', 'sa:prefs_file' => '/etc/mail/spamassassin/local.cf', 'sa:learn_cmd' => '/usr/bin/sa-learn', 'sa:user' => 'mail', 'sa:group' => 'mail', 'sa:tokens' => '_toks', 'sd:debug' => 'no', |
Nun wird dieses Script jede Stunde aufgerufen.