我有一个运行amavis和SpamAssassin的postfix服务器来帮助过滤垃圾邮件。 被传送到用户的Maildir中时,被检测为垃圾邮件的邮件如下所示:
来自tom @ tom-mint 2013年3月15日星期五01:46:20 返回path:<tom @ tom-mint> X-Original-To:[email protected] 交付给:[email protected] X-Virus-Scanned:Debian amavisd-new在my-server.com X-Spam-Flag:YES X-Spam-Score:6.463 X-Spam-Level:****** X-Spam-Status:是,score = 6.463 tagged_above = 2 required = 6.31 testing= [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] autolearn = no date:2013年3月15日星期五01:46:19 -0400 到:[email protected] 主题:*** SPAM ***你好 用户代理:传家宝mailx 12.5 6/10/10 内容types:text / plain; 字符集= US-ASCII 来自:tom @ tom-mint(Tom) 状态:RO 买一些伟哥!
特别要注意的是, ***SPAM***
以及X-Spam-Flag: YES
标题。
什么是最好的方式来configurationpostfix
将这些邮件存储在一个特殊的垃圾文件夹?
从我的研究来看,似乎我需要使用不同于postfix的邮件传递工具才能实现这一目标,但我不确定哪种方法最好。 似乎有很多过时的信息,我想知道postfix是否能够将消息放入文件夹或不。
邮件目录都是Maildir。
对postfix的本地(8)本地交付代理手册页进行粗略的细读,并没有像预期的那样显示出这种types的能力。 这种任务通常是卸载到procmail(可能通过mailbox_command指令),它可以处理您描述的任务,同时pipe理您的厨房水槽。 procmail的缺点是configuration文件格式,灵活性和大量容易find的例子。 如果最近出现了比procmail更好的东西,我不知道。
不过,就我的钱而言,即使我find了用MTA来做自己想做的事情的方法,我也不会沿着这条路走,因为这样的邮件sorting方式有一种balooning方式,没有MTA(我知道:也许交换,谁知道)可以做一个灵活的消息处理/交付代理的工作。
这是一个procmail的配方,根据唯一的标题内容(默认是传送目录,通常是$ HOME / Mail /)来做你想做的事情:
:0 * ^X-Spam-Flag: YES $DEFAULT/.Spam/
正如外星生命forms所说,这是一个procmail的工作。 这不是邮件服务器的本地交付代理的替代; 这是一个独立的过程,在MDA完成工作后会被调用。
每个想要使用procmail对邮件进行分类的用户都需要在其主目录下创build一个名为.forward
的文件。 该文件应该包含以下内容:
"|exec /usr/local/bin/procmail || exit 75"
完成"
标志和所有。
ALF已经发布了一个基本的.procmail
文件,该文件将把带有垃圾邮件标记的邮件整理到一个单独的文件夹中。
什么是邮件投递代理(请参阅main.cf mailbox_command)? 如果MDA是dovecot,它支持Sieve IETF标准(rfc5228),它可以比procmail做更多的事情,而不会暴露可能的安全漏洞。 不要螺栓procmail后缀/ dovecot,筛是完全集成。 如果你使用Courier,那么procmail是一个好的解决scheme。 但是,您会发现Pigeonhole的sieve / sievec程序更快,更清洁。
以下是一个简单的筛选脚本,用于识别垃圾邮件头并将邮件放入垃圾箱文件。
require "fileinto"; if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**" { fileinto "Trash"; stop; }