如何确定哪个用户发送带有后缀的特定电子邮件?


9

我们有一个后缀服务器,它要求通过它对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地址不是我们要从中发送邮件的用户。我想找出发件人在发送邮件时进行身份验证的用户帐户。

有没有办法追踪?


在上面,User是您的邮件服务器的主机名。你看到这样的东西了Authenticated sender:吗?
量子

Answers:


15

如果您在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/etc/postfix/main.cfPostfix中设置该选项,则会将SASL用户名添加到Received邮件的标题中。请注意,此标头可能会被篡改,因此以上是确定哪个用户提交了消息的唯一可靠方法。

smtpd_sasl_authenticated_header = yes

1
我没有在日志中看到此信息,所有这些条目均为client = xxx,并且没有sasl信息,无论是否使用了sasl。我猜这是因为我使用Dovecot进行sasl身份验证,而不是Cyrus SASL。我可以让Dovecot记录自己的身份验证记录,但是很难将它们与postfix的日志消息可靠地匹配。
gogoud

WHM / cPanel用户:/var/log/maillog
rinogo
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.