Spamassassinによって検出されたスパムを自動的にDebian JessieのJunkフォルダに移動しようとしています。
Spamassassinをインストールして設定を編集しました:
local.cf
(spamassassinフォルダー)
rewrite_header Subject *****SPAM*****
main.cf
spamassassin_destination_recipient_limit = 1
master.cf
smtp inet n - - - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e
/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
90-plugins.conf
(dovecot)
plugin {
#setting_name = value
sieve = /etc/dovecot/sieve/default.sieve
}
default.sieve
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
15-mailboxes.conf
(後置)
mailbox Junk {
auto = subscribe
special_use = \Junk
}
スパムは*****SPAM*****
として正しくマークされますが、ジャンクフォルダーに移動されません(メールクライアントとしてroundcubeを使用すると、ジャンクフォルダーも表示されません。mail.info
ログにもエラーはありません:
Mar 18 17:22:29 *************** postfix/smtpd[6184]: connect from mail-io0-f173.google.com[209.85.223.173]
Mar 18 17:22:29 *************** postfix/smtpd[6184]: DD759241A7B: client=mail-io0-f173.google.com[209.85.223.173]
Mar 18 17:22:30 *************** postfix/cleanup[6189]: DD759241A7B: message-id=<CALvS7dGxMQDAVn7WaVe4xhqyejU_1MBu20QMu__mVyLjggHi9w@mail.gmail.com>
Mar 18 17:22:30 *************** postfix/qmgr[4489]: DD759241A7B: from=<***************m>, size=2492, nrcpt=1 (queue active)
Mar 18 17:22:30 *************** spamd[4506]: spamd: connection from ip6-localhost [::1]:46206 to port 783, fd 6
Mar 18 17:22:30 *************** spamd[4506]: spamd: processing message <CALvS7dGxMQDAVn7WaVe4xhqyejU_1MBu20QMu__mVyLjggHi9w@mail.gmail.com> for vmail:5555
Mar 18 17:22:30 *************** postfix/smtpd[6184]: disconnect from mail-io0-f173.google.com[209.85.223.173]
Mar 18 17:22:30 *************** spamd[4506]: spamd: identified spam (1000.3/2.0) for vmail:5555 in 0.2 seconds, 2547 bytes.
Mar 18 17:22:30 *************** spamd[4506]: spamd: result: Y 1000 - FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GTUBE,HTML_MESSAGE,RCVD_IN_MSPIKE_H2,SPF_PASS,TVD_SPACE_RATIO,T_DKIM_INVALID scantime=0.2,size=2547,user=vmail,uid=5555,required_score=2.0,rhost=ip6-localhost,raddr=::1,rport=46206,mid=<CALvS7dGxMQDAVn7WaVe4xhqyejU_1MBu20QMu__mVyLjggHi9w@mail.gmail.com>,autolearn=no autolearn_force=no
Mar 18 17:22:30 *************** spamd[4505]: prefork: child states: II
Mar 18 17:22:30 *************** dovecot: lda(***************): msgid=<CALvS7dGxMQDAVn7WaVe4xhqyejU_1MBu20QMu__mVyLjggHi9w@mail.gmail.com>: saved mail to INBOX
Mar 18 17:22:30 *************** postfix/pipe[6192]: DD759241A7B: to=<***************>, relay=spamassassin, delay=0.63, delays=0.32/0/0/0.3, dsn=2.0.0, status=sent (delivered via spamassassin service)
Mar 18 17:22:30 *************** postfix/qmgr[4489]: DD759241A7B: removed
私の場合、include conf.d/*.conf
のdovecot.conf
行が欠落しており、dovecotは90-plugins.conf
を含むこれらのファイルから構成を読み取れませんでした。
ただし、すべての構成がすでにdovecot.conf
にあり、conf.d/*.conf
ファイルはデフォルト設定で上書きするため、この行を含めませんでした。これらの行をdovecot.conf
に含めただけです。
plugin {
sieve = /etc/dovecot/sieve/default.sieve
}
protocol lda {
mail_plugins = $mail_plugins sieve
}
他のすべての設定は問題なく機能するはずです( this answer から取得したようです)。
フィルタールールを管理するには、dovecotでふるいを使用できます。あなたはそれをグローバルなふるいまたはユーザーごとのふるいとして置くことができます。
グローバルシーブの場合、/ etc/dovecot/dovecot.confの構成を使用します。
sieve_global_path = /home/vmail/sieve/dovecot.sieve
ユーザーごとのふるい構成の場合:
sieve = /%Lh/sieve/dovecot.sieve
どの%Lh === dovecotがユーザーのメールボックスディレクトリに変更します
これは、ふるいファイルのコンテンツの例です。
if header :contains "*****SPAM*****" "YES" { fileinto "Junk"; stop; }