Qmail for CentOS7 With SpamAssassin 3.4 ユーザ毎のuser_prefs

この記事は約7分で読めます。

前回
Qmail for CentOS 7 with SpamAssassin 3.4.2
は、サーバー全体で、迷惑メールの判定をしていました。
しかし、実際には、ユーザ毎(メールアドレス毎)に、迷惑メールの判定基準を設けたい。
というのが実情かと思います。
qmailでの設定方法を記述します

.qmailの設定

Qmailでは、
Maildirのディレクトリに、「.qmail」をおいて、その中で、「転送」などの設定を行います。

今回、vpopmailで、マルチドメインの設定をしているので、
info@(独自ドメイン)の「.qmail」の置き場所は、

/home/vpopmail/domains/(独自ドメイン)/info/

になります。

# vi .qmail

|/var/qmail/bin/preline /usr/local/bin/maildrop /home/vpopmail/etc/mailfilter_simple

となっているところを

|/var/qmail/bin/preline /usr/local/bin/maildrop /home/vpopmail/domains/(独自ドメイン)/info/mailfilter

とします。

最後の「mailfilter」の中身が重要です。
vi /home/vpopmail/domains/(独自ドメイン)/info/mailfilter
----------------------------------------------------------------------
SHELL="/bin/sh"
import EXT
import HOST
VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
logfile "mailfilter.log"

if ( $VHOME eq "" )
{
   log "ERROR: VHOME isn't set!"
   to "$VPOP"
}
else
{
   xfilter "/usr/local/bin/spamc -f -u $EXT@$HOST"

   if (/^X-Spam-Flag: *YES/)
   {

      `test -d $VHOME/Maildir/.Spam`
      if( $RETURNCODE == 1)
      {
         `/usr/local/bin/maildirmake -f Spam $VHOME/Maildir`
      }
      exception {
         cc "!(迷惑メールとされたメールの転送先メールアドレス)";
         to "$VHOME/Maildir/.Spam/"
      }
   }
   else
   {
         cc "!(迷惑メールではないと判断された転送先メールアドレス)";
         to "$VHOME/Maildir/" 「残す」場合

   }

}

↑上記の解説・・・

xfilter “/usr/local/bin/spamc -f -u $EXT@$HOST”
で、SpamAssassinを通します。

SpamAssassinでは、SpamAssassinを通ったメールは、ヘッダに
「X-Spam-Flag」という情報が付加されます。
上記では、
if (/^X-Spam-Flag: *YES/)
で、「迷惑メール」となった場合は、「.Spam」というフォルダにメールが移動されます。
この「.Spam」フォルダは、メールソフトでは、受信されません。

2カ所ある、「cc」で始まる行では、「転送」を行います。
「迷惑メール」を「特定のメールアドレス」に。
「迷惑メールではない」メールを「特定のメールアドレス」に。
という制御が可能です。
また、

to “$VHOME/Maildir/”

で、「迷惑メールではない」メールを、通常通りのMaildirに保存します。

# chown vpopmail.vchkpw mailfilter 
# chmod go-r mailfilter

とします。

user_prefs

メールアドレス毎の設定ファイル、user_prefsを入手します。

Postfix3.3 迷惑メール対策 SpamAssassin(スパムアサシン)設定その2

にも、記載しましたが、松田陽一さんが、設定ファイルを公開してくれています。
https://pastebin.com/QnwRxxBQ
から、入手します。松田陽一さんに感謝!

/home/vpopmail/domains/(独自ドメイン)/info/.spamassassin

というフォルダがあるかと思います。
その中に、user_prefsを保存します。

# chown vpopmail.vchkpw user_prefs

とします。

迷惑メール判定のユーザ毎の設定

/home/vpopmail/domains/(独自ドメイン)/info/.spamassassin
のフォルダ、user_prefsと同じフォルダに、「private_prefs」というファイルを作成し、そのファイルで、個人毎(メールアドレス毎)の設定をします。

スコア設定

SpamAssassinでは、「スコア」という点数で、迷惑メールを判定します。
最終的な数字が大きいほど、迷惑メールの可能性が高いです。
user_prefsでは、様々な条件により、「スコア」を加算していきます。

required_score 5.0

というふうに記述をします。
小さいほうが、「迷惑メール」の基準が厳しくなります。
逆に、「迷惑メールではない」メールも「誤判断」とされてしまします。

ホワイトリスト/ブラックリスト

SpamAssassinでは、「差出人」で、
「迷惑メールではない」
「迷惑メールである」
と、判定することができます。

特定の企業の独自ドメイン(もしくは、メールアドレス)からは、無条件に「迷惑メールではない」
という設定が可能です(ホワイトリスト)。

逆に、「このドメイン(もしくはメールアドレス)」からのメールは、
「絶対に迷惑メール」
という「ブラックリスト」の設定ができます。

ホワイトリスト指定は、

whitelist_from (メールドレス)
whitelist_from *@(独自ドメイン)

ブラックリスト指定は、
blacklist_from (メールアドレス)
blacklist_from *@(独自ドメイン)

と指定します。

スパムリポートの設定

report_safe
という設定があり、初期設定では 「1」です。
これは、本来のメール本文が、「添付」という形で、受信します。
「0」にすると、「メールヘッダ」内に、迷惑メールのヘッダ内に迷惑メールのレポートがなされます。

個人的には、「ゼロ」を指定しています。

report_safe 0

です。
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on (ホスト名)
X-Spam-Flag: YES
X-Spam-Level: ****
X-Spam-Status: Yes, score=5.0 required=2.0 tests=CONTENT_TYPE_PRESENT,
        NO_RELAYS,QENCPTR1,URIBL_SC2_SURBL,URIBL_XS_SURBL,UTF8 autolearn=no
        autolearn_force=no version=3.4.2
X-Spam-Report:
        * -0.1 CONTENT_TYPE_PRESENT exists:Content-Type
        *  3.0 URIBL_SC2_SURBL Has URI in SC2 at
        *      http://www.surbl.org/lists.html
        *      [URIs: enoteca.co.jp]
        *  2.0 URIBL_XS_SURBL Has URI in XS - Testing
        *      [URIs: enoteca.co.jp]
        * -0.0 NO_RELAYS Informational: message was not relayed via SMTP
        * -0.1 UTF8 BODY: UTF-8 message body
        *  0.2 QENCPTR1 FULL: Quoted-Printable mime pattern

と、ヘッダ内に、「スコア」の加算状況がレポートされます。

これらの設定を「private_prefs」というファイルに記述します。

 

タイトルとURLをコピーしました