如何确定哪个用户使用 postfix 发送了特定的电子邮件?

如何确定哪个用户使用 postfix 发送了特定的电子邮件?

我们有一个 Postfix 服务器,需要通过它进行身份验证才能进行 SMTP 中继。我们在 MySQL 数据库中使用虚拟邮箱。

一条消息通过我们的系统传递,我们需要确定使用我们的哪一个用户帐户发送该消息。

邮件头包含:

Received: from User (c-76-109-241-139.hsd1.fl.comcast.net [xx.109.xxx.139]) 
    by ourserver.com (Postfix) with ESMTPA id 7BA184B4AD4; 
    Tue,  3 Jul 2012 05:42:59 -0400 (EDT)

我们没有名为“User”的用户,并且 IP 地址也不是我们发送邮件的 IP 地址。我想知道发件人在发送邮件时验证了我们的哪个用户帐户。

有办法追踪这个吗?

答案1

如果你在 中 grep 消息 ID(在本例中为 7BA184B4AD4),/var/log/mail.log你应该会找到一个指示 的日志行sasl_username。例如:

% zgrep 07A1753F /var/log/mail.log*
Jul  4 19:47:58 mammon postfix/smtpd[4936]: 07A1753F: client=c-69-181-123-456.hsd1.ca.comcast.net[69.181.123.456], sasl_method=PLAIN, sasl_username=mgorven

编辑:如果您设置smtpd_sasl_authenticated_header Postfix中的选项/etc/postfix/main.cf会将 SASL 用户名添加到Received邮件的标头中。请注意,此标头可能会被篡改,因此上述方法是确定哪个用户提交了该消息的唯一可靠方法。

smtpd_sasl_authenticated_header = yes

相关内容