不

我们正在运行垃圾邮件陷阱/蜜罐,通过使用这里成员的出色指导,我已经能够配置运行 Postfix 2.11.0 的 Ubuntu 服务器以捕获所有入站电子邮件(无论目标地址如何),并将电子邮件发送到 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 文件,它们完全相同,除了每个文件标题中的 1 行。例如,如果我亲自向我们的蜜罐收集器发送一封电子邮件,其收件人地址为[电子邮件保护]并抄送给[电子邮件保护],每个文件的唯一区别是一行如下:

X-Original-To: [email protected]

和另一个

X-Original-To: [email protected]

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

编辑:附加信息:SMTP-sink 满足了我们的需要,并且是我们当前正在运行的路径,但我们希望改用 postfix。在 postfix main.cf 中,我添加了:

virtual_alias_maps = pcre:/etc/postfix/virtual

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

/.*/                        mailin

在 /etc/aliases 中我添加了:

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

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

答案1

我担心你的问题的答案

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


Postfix 使用X-Original-Toheader 来执行收件人复制。当然,您可以通过 main.cf 配置此参数,使 postfix 只写入一个文件

enable_original_recipient = no

副作用是您将丢失消息和邮件日志中的原始收件人记录

参考

相关内容