SpamAssassinにて、user_prefsを入れ替えて、迷惑メールと判断されたものは、受信しないようにしたいと思います。
迷惑メール、判定ツール、user_prefs 入れ替え
松田陽一さん作のSpamAssassin設定ファイルに入れ替えます。
からファイルをダウンロードします。
/etc/mail/spamassassin
に、「user_prefs」として保存します。
# cd /etc/mail/spamassassin # mv local.cf local.cf.back # mv user_prefs local.cf # systemctl restart spamassassin
vi /etc/mail/spamassassin/v310.pre # TextCat - language guesser # #loadplugin Mail::SpamAssassin::Plugin::TextCat ↓ # TextCat - language guesser # loadplugin Mail::SpamAssassin::Plugin::TextCat
↑ コメントを外して、有効にします。
config: failed to parse, now a plugin, skipping, in “/etc/mail/spamassassin/local.cf”: ok_languages ja en
というエラーがなくなります。(2019/05/26追加)
vi /etc/mail/spamassassin/local.cf include private_prefs の前に、 allow_user_rules 1 report_safe 0 rewrite_header Subject ***SPAM***
と入れます。
allow_user_rules
は、ユーザ毎にルールを設定できるようにする。(する場合「1」にする)
report_safe
は、「0」にすると、ヘッダ内に、「迷惑メールの判定レポート」が表示されます。
「1」にすると、メール本文に表示されます。
rewrite_header
は、迷惑メールと判定された場合、ヘッダ内を書き換えます。
rewrite_header Subject ***SPAM***
は、題名に「***SPAM***」と入れてくれます。
迷惑メールを振り分ける。「受信させない」ようにする。
# yum install procmail Running transaction Installing : procmail-3.22-36.el7_4.1.x86_64 1/1 Verifying : procmail-3.22-36.el7_4.1.x86_64 1/1 Installed: procmail.x86_64 0:3.22-36.el7_4.1 Complete!
↑振り分けツールである、「procmail」を入れます。
# vi /etc/procmailrc SHELL=/bin/bash PATH=/usr/bin:/bin DROPPRIVS=yes MAILDIR=/mail/$DOMAIN/$USER DEFAULT=$MAILDIR/ LOGFILE=/mail/$DOMAIN/$USER/.procmail.log VERBOSE=ON :0fw: spamassassin.lock *!^X-Spam-Status.* | /usr/local/bin/spamc :0 *^X-Spam-Status: YES $MAILDIR/.Spam/
↑振り分けるルールを「procmailrc」というファイルに記述します。
procmailの「レシピ」と呼ばれています。
*!^X-Spam-Status.* | /usr/local/bin/spamc
↑上記では、ヘッダ内に「X-Spam-Status」という行がなければ、「/usr/local/bin/spamc」というプログラムを通して、SpamAssassinで、迷惑メールかどうかが判定されます。
*^X-Spam-Status: YES $MAILDIR/.Spam/
↑そして、「X-Spam-Status: YES」となっていれば、つまり、迷惑メールと判定されたのであれば、「.Spam」というフォルダに、振り分けられます。
この「.Spam」は、通常のメール受信操作では、受信されません。
Procmail用にPostfixを修正
# vi /etc/postfix/main.cf local_transport = local ↓ local_transport = virtual virtual_transport = virtual を virtual_transport = procmail にする
# vi /etc/postfix/master.cf policy unix - n n - 0 spawn user=nobody argv=/usr/bin/python3.6 /usr/bin/policyd-spf /etc/python-policyd-spf/policyd-spf.conf smtp inet n - n - - smtpd procmail unix - n n - - pipe flags=R user=vuser argv=/usr/bin/procmail -t -m USER=${user} DOMAIN=${nexthop} /etc/procmailrc
# systemctl restart postfix
迷惑メールを受信する・・・
# head .Spam/new/xxxxxxxxxxxxxx.xxxxxx.xxxx Return-Path: <(差出人)> X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) X-Spam-Flag: YES X-Spam-Level: *** X-Spam-Status: Yes, score=13.2 required=13.0 tests=CONTENT_TYPE_PRESENT,
と、スパムは、別フォルダに入りました。