SFがそのための良い場所であるかどうかはわかりませんが、そうでない場合は申し訳ありません。私は会社の電子メール用にDebianサーバーを管理しており、Spamassassinによって電子メールにスパムのフラグを付けて、各ユーザー専用のフォルダー(Spam /やJunk /など)に入れようとしていますが、どうにかできません。それ。私はすでにPostfixとSpamAssassinを正常に実行しています(SAは件名フィールドのスパムメールに適切にフラグを立てます)が、今度はProcmailフィルターを設定して必要な場所に配置する必要があります。
これが私が持っているものです:私の/etc/postfix/master.cfには、SAルールがあります:
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
スパムフィルタリングのルールを追加しようとしました:
spamfilter unix - n n - - pipe
flags=Rq user=vmail argv=/usr/bin/procmail -Y -m /etc/postfix/procmail-spamassassin.rc
そして私の/etc/postfix/procmail-spamassassin.rc:
Shell=/bin/sh
LOGFILE=/var/log/procmail.log
VERBOSE=yes
LOGABSTRACT=all
:0
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
Junk
しかし、それは機能せず、理由がわかりません... procmail.logに出力がないので、それをデバッグする方法がわかりません(私のPostfixログはそれ以上を提供しません)。 postfix reload
は私の変更を無視しているようです。 main.cfにmailbox_command
を入れてProcmailを使用するなど、他の多くの構成を試しましたが、それは良くありません...詳細については、Postfix仮想メールボックスを使用します(メールボックスはMySQLに保存され、 Unixアカウント)。
私はProcmailがこのように実行できることを知っています。なぜなら、master.cfに同様の休暇フィルターがあり、それが機能するからです。
vacation unix - n n - 10 pipe
flags=Rq user=vacation argv=/usr/bin/procmail -Y -m /etc/postfix/procmail-global-repondeur.rc ${sender} ${recipient}
私が間違ったことを見ることができますか?
最終的なメールの宛先をprocmailにしないのはなぜですか?別のトランスポートを設定する必要はありません。 main.cfのmailbox_command
値を調べます。
「トランスポート」テーブルに「spamfilter」を追加しましたか?