我有一个运行 amavis 和 SpamAssassin 的 postfix 服务器来帮助过滤垃圾邮件。被检测为垃圾邮件的邮件在传送到用户的 Maildir 时看起来像这样:
来自 tom@tom-mint 2013 年 3 月 15 日星期五 01:46:20 返回路径:<tom@tom-mint> X-Original-To:[email protected] 交付至:[email protected] X-Virus-Scanned:my-server.com 上的 Debian amavisd-new X-垃圾邮件标志:是 X-垃圾邮件评分:6.463 X 垃圾邮件级别:****** X-Spam-Status:是,分数=6.463 tagged_above=2 required=6.31 测试=[DRUGS_ERECTILE=2.221,FH_FROMEML_NOTLD=0.18, FSL_HELO_NON_FQDN_1=0.001,HELO_NO_DOMAIN=0.001,RCVD_IN_PBL=3.558, RDNS_DYNAMIC=0.363,TO_NO_BRKTS_DYNIP=0.139] 自动学习=否 日期:2013 年 3 月 15 日星期五 01:46:19 -0400 至:[email protected] 主题:***垃圾邮件***你好 用户代理:传家宝 mailx 12.5 6/20/10 内容类型:文本/纯文本;字符集=us-ascii 来自:tom@tom-mint(汤姆) 状态:RO 买点伟哥!
请特别注意主题(前缀为***SPAM***
)和X-Spam-Flag: YES
标题。
postfix
配置将这些邮件存储在特殊垃圾文件夹中的最佳方法是什么?
根据我的研究,似乎我需要使用与 postfix 不同的邮件传递工具来完成此操作,但我不确定哪种方法最好。似乎有很多过时的信息,我想知道 postfix 是否能够将邮件放入文件夹中。
邮件目录都是 Maildir。
粗略地阅读 postfix 的 local(8) 本地交付代理手册页没有显示出这种类型的功能的提示 - 正如预期的那样。这种任务通常被卸载到 procmail(可能通过 mailbox_command 指令),它可以处理您描述的任务,同时管理您的厨房水槽。procmail 的缺点是配置文件格式,优点是灵活性和容易找到的大量示例。如果最近出现了比 procmail 更好的东西,我不知道。
不过,为了我的钱,即使我找到了用 MTA 做你想做的事情的方法,我也不会走那条路,因为这种邮件分拣有一种膨胀的方式,没有 MTA(据我所知:也许 exchange 确实如此,谁知道呢)在成为灵活的消息处理程序/传递代理方面也能做得很好。
这是一个 procmail 配方,它会根据唯一的标题内容(其中 DEFAULT 是传递目录,通常类似于 $HOME/Mail/)来执行您想要的操作:
编辑:( 这假定 maildir 邮箱格式,如以下评论中所述。如果使用 mbox,请省略最后的斜杠)
正如 Alien Life Form 所说,这是 procmail 的工作。这不能替代邮件服务器的本地递送代理;这是一个单独的过程,将在 MDA 完成其工作后调用。
每个想要使用 procmail 对他们的邮件进行排序的用户都需要创建一个
.forward
在他们的主目录中调用的文件。该文件应包含以下内容:完成
"
标志和所有。ALF 已经发布了一个基本
.procmail
文件,可以将标有垃圾邮件的邮件分类到一个单独的文件夹中。您的邮件投递代理是什么(请参阅 main.cf mailbox_command)?如果 MDA 是 dovecot,它支持 Sieve IETF 标准 (rfc5228),它可以比 procmail 做更多的事情而不会暴露可能的安全漏洞。不要将 procmail 连接到 postfix/dovecot,sieve 是完全集成的。如果您使用的是 Courier,那么 procmail 是一个不错的解决方案。但是,您会发现 Pigeonhole 的 sieve/sievec 程序更快更清洁。
以下是一个简单的筛选脚本,用于识别您的垃圾邮件标头并将邮件放入垃圾箱文件。