使用postfix将垃圾邮件发送到特殊文件夹


9

我有一个运行amavis和SpamAssassin的postfix服务器来帮助过滤垃圾邮件。当被发送到用户的Maildir中时,被检测为垃圾邮件的邮件如下所示:

来自tom @ tom-mint 2013年3月15日星期五01:46:20
返回路径:<tom @ tom-mint>
X原始至:tom@my-server.com
交付至:tom@my-server.com
X病毒扫描:Debian amavisd-new位于my-server.com
X垃圾邮件标记:是
X垃圾邮件得分:6.463
X垃圾邮件级别:******
X垃圾邮件状态:是,得分= 6.463标记为上= 2必填= 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] autolearn = no
日期:2013年3月15日,星期五01:46:19 -0400
到:tom@my-server.com
主题:***垃圾邮件***你好
用户代理:Heirloom mailx 12.5 6/20/10
内容类型:文本/纯文本;字符集= us-ascii
来自:tom @ tom-mint(Tom)
状态:RO

买一些伟哥!

请特别注意标有的主题***SPAM***X-Spam-Flag: YES标题。

配置postfix将这些消息存储在特殊的垃圾文件夹中的最佳方法是什么?

从我的研究看来,我似乎需要使用与postfix不同的邮件传递工具来完成此任务,但是我不确定哪种方法是最好的。似乎有很多过时的信息,我想知道postfix是否能够将邮件放入文件夹中。

邮件目录都是Maildir。


看起来可能需要使用maildrop之类的东西。我仍在寻找一种使用Postfix的默认MDA进行此操作的方法,这样我可以以最小的麻烦保留别名和其他postfix功能。当我提出答案时,我将发布答案。
Tom Marthenal,2013年

Answers:


8

对postfix的local(8)本地传递代理手册页的详细研究并未显示出这种功能的暗示-如预期的那样。通常将此类任务卸载到procmail(可能通过mailbox_command指令),从而可以在管理侧面厨房水槽时处理您描述的任务。procmail的缺点是配置文件格式,灵活性和容易找到的大量示例。如果最近出现了比procmail更好的东西,我不知道。

不过,即使我花了我的钱,即使我找到了解决MTA的方法,也不会走这条路,因为这种邮件分拣方式具有缓冲的功能,没有MTA(我知道:也许交换确实可以做得很好,因为它也是一个灵活的消息处理程序/传递代理。

这是一个procmail配方,它将根据唯一的标头内容(其中DEFAULT是传递目录,通常类似于$ HOME / Mail /)来执行您想要的操作:

:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/

编辑:( 这假定为maildir邮箱格式,如下面的注释中所述。如果使用mbox,请省略最后斜杠)


$DEFAULT/没有必要。有助于提高人类可读性。另请注意,如果使用Mbox,则在末尾添加斜杠将创建Maildir,然后省略斜杠(请参阅:unix.stackexchange.com/a/132658/241396)。
加里·图尔基亚

5

正如外星人生命表所说,这是procmail的工作。这不能替代邮件服务器的本地传递代理。它是一个单独的进程将被称为的MDA做它的工作。

每个希望对他们的邮件进行procmail排序的用户都需要.forward在其主目录中创建一个名为的文件。该文件应包含以下内容:

"|exec /usr/local/bin/procmail || exit 75"

完整的"标志和所有。

ALF已经发布了一个基本.procmail文件,该文件会将带有垃圾邮件的邮件分类到一个单独的文件夹中。


1
请注意,在某些情况下,procmail位于/ usr / bin / procmail中,以查明它在系统上运行的位置which procmail
Malfist 2014年

4

您的邮件传递代理是什么(请参阅main.cf Mailbox_command)?如果MDA是dovecot,则它支持Sieve IETF标准(rfc5228),在不暴露可能的安全漏洞的情况下,它可以做的比procmail还要多。不要将procmail固定在postfix / dovecot上,筛子已完全集成。如果您使用的是Courier,那么procmail是一个不错的解决方案。但是,您会发现Pigeonhole的sieve / sievec程序更快,更干净。

以下是一个简单的筛查脚本,用于识别您的垃圾邮件标头并将邮件放入“垃圾箱”文件中。

require "fileinto";

if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"  
{
  fileinto "Trash";
  stop;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.