后缀不报告从地址到opendkim

我试图设置一个DKIM电子邮件签署一个后缀SMTP服务器。

该服务器将被本地networking上的不同服务使用。

我已经生成了DKIM密钥对,将其添加到我的域中,并能够成功地从服务器本身发送电子邮件,如下所示:

me@server:~$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 server.lan ESMTP Postfix (Ubuntu) HELO example.com 250 server.lan MAIL FROM: service@example.com 250 2.1.0 Ok RCPT TO: me@example.com 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> To:me@example.com Subject:Testing from server hello . 250 2.0.0 Ok: queued as AAD604EA1CC2 

该消息以正确的DKIM签名收到。

但是,如果我在本地networking的另一台机器上执行完全相同的操作(仅限于telnet server.lan 25 ),则不包括DKIM签名,收件人也不知道是谁发送了电子邮件。

我发现/var/log/mail.log中的这个条目与它有关:

 Jul 30 04:28:16 server opendkim[25664]: AAD604EA1CC2: can't determine message sender; accepting 

所以我认为后缀没有正确设置FROM地址。 那么为什么不这样做,我该如何解决?

提前致谢…

从工作站进行交易期间的整个日志是这样的:

 Jul 30 15:56:29 server postfix/smtpd[6795]: warning: database /etc/aliases.db is older than source file /etc/aliases Jul 30 15:56:29 server postfix/smtpd[6795]: connect from workstation.lan[192.168.1.63] Jul 30 15:57:24 server postfix/smtpd[6795]: 2C35E4EA1DD1: client=workstation.lan[192.168.1.63] Jul 30 15:58:18 server postfix/cleanup[6799]: 2C35E4EA1DD1: message-id=<> Jul 30 15:58:18 server opendkim[25664]: 2C35E4EA1DD1: can't determine message sender; accepting Jul 30 15:58:18 server postfix/qmgr[25810]: 2C35E4EA1DD1: from=<service@example.com>, size=272, nrcpt=1 (queue active) Jul 30 15:58:19 server postfix/smtp[6802]: 2C35E4EA1DD1: to=<me@example.com>, relay=ASPMX.L.GOOGLE.COM[173.194.70.26]:25, delay=67, delays=66/0.02/0.26/1.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1343656739 a59si1127667wel.70) Jul 30 15:58:19 server postfix/qmgr[25810]: 2C35E4EA1DD1: removed 

MTA从不负责设置消息头; 这是你的邮件客户端或MUA的问题。

也就是说,如果postfix检测到没有ANY From:标题的消息,它将MAIL FROM发件人地址添加为From:标题; 这是非常有据可查的。

你在main.cf中设置了smtpd_milters和non_smtpd_milters吗?

我尝试了一个只有smtpd_milters指向它的dkim milter,即使我telnet到smtpd也不行,但是当我为non_smtpd_milters添加configuration时,它开始工作。 那里有一些非常棘手的事情,但这就是它的原因。

我刚碰到这个问题就解决了。 他们在这里的关键是从maillog的行:“不能确定消息发件人;接受”。 问题在于,邮件进来的格式不正确,缺less一些RFC所需的头文件,这些头文件需要执行DKIM。

默认情况下,opendkim被configuration为允许这些消息通过,因为它无法对可用信息做任何事情,既不能确认也不能否认消息通过DKIM,并且在决定不删除消息的情况下configuration为。

为什么在使用telnet发送邮件时触发这个事件是因为你没有输出opendkim所期望的所有RFC所需的头文件。 如果你添加了它们(具体来说,opendkim似乎只是检查From和Date标题,而且几乎不关心Date标题实际包含的内容)

如果您放弃所有违反RFC的邮件并且丢失了From或Date标头,那么您可以进入opendkim.conf,并更改或添加“RequiredHeaders yes”行。 这样做可能是相当安全的,因为即使大多数垃圾邮件都可以正确使用,但是在丢弃邮件时总会有一些风险,即一些合法的邮件也可能被丢弃。