在postfix Received头中缺less客户端IP

我刚刚注意到我的后缀设置已经有一段时间的问题了。

从德国的免费邮件提供商web.de收到(某些)邮件时,在邮件postfix中发现以下标题传递给MDA:

Received: from mout.web.de (unknown) by mail.<mydomain>.de(Postfix 2.9.6/8.13.0) with SMTP id unknown Wed, 29 Jan 2014 09:00:14 +0100 (envelope-from <[email protected]> Received: from 3capp-webde-bs39.server.lan ([172.19.170.39]) by mriweb.server.lan (mriweb002) with ESMTP (Nemesis) id ***** for <[email protected]>; Wed, 29 Jan 2014 09:01:01 +0100 Received: from [##.###.##.###] by 3capp-webde-bs39.server.lan with HTTP; Wed Jan 29 09:01:01 CET 2014 

这是日志中的内容:

 postfix/smtpd[16230]: connect from mout.web.de[212.227.17.11] postfix/smtpd[16230]: 5C17E14C10A6: client=mout.web.de[212.227.17.11] postfix/cleanup[16238]: 5C17E14C10A6: message-id=<trinity-b7f12c80-a158-43f9-8266-583a7b0533bd-############@3capp-webde-bs39> postfix/qmgr[4490]: 5C17E14C10A6: from=<[email protected]>, size=6402, nrcpt=1 (queue active) postfix/smtpd[16230]: disconnect from mout.web.de[212.227.17.11] postfix/lmtp[16242]: 5C17E14C10A6: to=<[email protected]>, relay=mail.<mydomain>.de[private/dovecot-lmtp], delay=1, delays=0.81/0/0/0.22, dsn=2.0.0, status=sent (250 2.0.0 <[email protected]> qO51H+K06FKAPwAAsCbVSQ Saved) postfix/qmgr[4490]: 5C17E14C10A6: removed 

现在的问题是,spamassassin现在试图对第一跳IP进行RBL检查,因为最后一跳的IP地址不可用,第二个IP地址是专用networking。 第一跳当然是dynamic的,所以所有的邮件被标记为垃圾邮件。

当试图从我自己的web.de帐户重现这个行看起来像:

 Received: from mout.web.de (mout.web.de [212.227.17.12]) by mail.<mydomain>.de (Postfix) with ESMTP id *** for <[email protected]>; Sat, 8 Feb 2014 17:26:11 +0100 (CET) 

这正是我期望的结果。

任何线索,为什么后缀不把客户端IP在收件头?

谢谢你的帮助!

问题在spamass-milter(在spamass-milter.cpp中search“Received:from”)。 这在某种程度上是由于milter在传入的SMTP连接closures之前运行,而postfix尚未写入Received-Header,而spamass-milter需要做一些在某些情况下似乎被破坏的魔法。

不幸的是,我没有必要的时间和知识去debuggingspamass-milter进一步的问题,所以我完全放弃了milter,继续使用SpamAssassin的“老式”方式:

 # master.cf dovecot-spamass unix - nn - - pipe flags=DRhu user=vmail:vmail argv=/usr/bin/spamc -u ${recipient} -e /usr/lib/dovecot/dovecot-lda -f ${sender} -a ${original_recipient} -d ${user}@${nexthop} # main.cf virtual_transport=dovecot-spamass 

与milter / lmtp设置相比,这被logging为慢一点,它不会给你拒绝在SMTP会话内超过某个SpamAssassin评分的反弹消息的可能性(这对我来说很好)。

感谢Julian 帮助debugging 。