配置 Postfix、Spamassassin 和 Procmail 将垃圾邮件放入专用文件夹

配置 Postfix、Spamassassin 和 Procmail 将垃圾邮件放入专用文件夹

我不确定 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似乎忽略了我的更改。我尝试了许多其他配置,例如mailbox_command在我的 main.cf 中使用 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}

你知道我做错了什么吗?

答案1

为什么不直接将最终邮件目的地设为 procmail?无需设置其他传输。查看mailbox_commandmain.cf 中的值。

答案2

您是否在“传输”表中添加了“垃圾邮件过滤器”?

相关内容