Postfix全电子邮件,保存到组合文件

我们正在运行一个垃圾邮件陷阱/蜜jar,通过使用这里的成员惊人的指导,我已经能够configuration我们运行Postfix 2.11.0的Ubuntu服务器来捕获所有的入站邮件,不pipe目的地址如何,通过电子邮件发送到一个python脚本,该脚本又将电子邮件写入一个文件。 python脚本如下所示:

#!/usr/bin/env python import sys import email import os import datetime em = email.message_from_file(sys.stdin) # Read message from Std Input strFilename = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + ".eml" output = open('/var/mail/' + strFilename, 'w') output.write(str(em)) output.close() 

我的问题是:当我们收到两个或多个收件人的电子邮件时,python脚本正在写两个(或更多).eml文件,而不是两个收件人列出的文件。 我比较了.eml文件,它们与每个文件的标题中的一行exception相同。 例如,如果我亲自发送一封电子邮件给我们的honeypot收件人,邮件地址为[email protected],抄送地址为[email protected],每个文件的唯一区别在于:

 X-Original-To: [email protected] 

和另一个

 X-Original-To: [email protected] 

无论如何只写一个文件与两个X-Original-To:字段列出?

编辑:其他信息:SMTP接收器做我们需要,是我们目前正在运行的path,但我们希望能够使用后缀。 在postfix main.cf中,我添加了:

 virtual_alias_maps = pcre:/etc/postfix/virtual 

然后我在/ etc / postfix / virtual中创build了一个包含文件

 /.*/ mailin 

在/ etc / aliases中,我添加了:

 #/etc/aliases mailin: "|/var/mail/mailcatch.py" 

然后我的mailcatch.py​​包含上面的python脚本。 我还创build了一个名为“mailin”的新用户。

恐怕你的问题的答案

有没有办法只写一个文件与两个X-Original-To:字段列出?

没有


Postfix使用X-Original-To标题来执行收件人重复。 当然,你可以通过main.cfconfiguration这个参数让postfix只写一个文件

 enable_original_recipient = no 

副作用是您将在邮件和maillog中丢失原始收件人logging

参考

  • 官方文件
  • 从另一个线程回答