如何正确configurationpostfix和opendkim,并让接收服务器知道所有的邮件签名的细节?

我正在努力实现 – 底线:邮件进入收件箱,而不是垃圾邮件文件夹。

我有一个运行postfix(邮件服务器)的服务器,我有3个域。 邮件服务器用于传入和传出邮件

我正在与opendkim签署,并有DNSlogging。

经过长时间观察,我意识到邮件由于邮寄和签名分配不正确而导致垃圾邮件。

考虑一下,我的邮件服务器是mailserver.example.com,另外3个域是example1.com,example2.com和example3.com

当有人从[email protected]发送电子邮件时,应该显示:

[email protected]通过mailserver.example.com

mail:mailserver.example.com

签名者:example1.com

我发现邮件和亚马逊邮件几乎不会被发送到垃圾邮件,事实是,'也许'是因为原始的主机名/ ip反向parsing为邮件和签名。

configuration文件:

/etc/opendkim/Keytable

 mvs._domainkey.example1.com example1.com:selc:/etc/opendkim/keys/example1_com/selc.private mvs._domainkey.example2.com example2.com:selc:/etc/opendkim/keys/example2_com/selc.private 

/etc/opendkim.conf

 Domain example1.com KeyFile /etc/opendkim/keys/example1_com/selc Selector selc Domain example2.com KeyFile /etc/opendkim/keys/example2_com/selc Selector selc Canonicalization simple Mode sv Syslog yes LogWhy yes UMask 022 UserID opendkim:opendkim KeyTable /etc/opendkim/KeyTable SigningTable /etc/opendkim/SigningTable ExternalIgnoreList /etc/opendkim/TrustedHosts InternalHosts /etc/opendkim/TrustedHosts Socket inet:34562@localhost X-Header no 

最后

/etc/opendkim/SigningTable

 example1.com selc._domainkey.example1.com example2.com selc._domainkey.example2.com 

我在哪里失踪?

首先,请删除这些值(如果您使用KeyTable,则不需要):

 Domain example1.com KeyFile /etc/opendkim/keys/example1_com/selc Selector selc Domain example2.com KeyFile /etc/opendkim/keys/example2_com/selc Selector selc 

像这样设置你的KeyTable

 mykey1 example1.com:recordname1:/path/to/domain.key mykey2 example2.com:recordname2:/path/to/domain.key 

像这样设置你的SigningTable (注意通配符匹配和KeyTable中的mykey1mykey2 ):

 *@example1.com mykey1 *@example2.com mykey2 

最后,通过refile prefix(正则expression式支持)将opendkim.conf更改为包含SigningTable

 SigningTable refile:/etc/opendkim/SigningTable 

和域logging的参考(注意从KeyTable recordname1recordname2 ):

 recordname1._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..." recordname2._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..." 

此外,请检查是否在InternalHosts文件中具有您的节点主机名(从中发送邮件):

 server1.example1.com server2.example2.com mail.example1.com mail.example2.com 

再一次,你可以使用refile: prefix来添加如下内容:

 *.example1.com *.example2.com 

如果你有多个主机,不想手动包含所有主机。 如果只接受本地邮件,则应在此处添加localhost

如果您的主机在InternalHosts文件中丢失,您应该检查日志文件以获取有关跳过签名的DKIM通知。

opendkim.conf的例子:

 # Set these values (Syslog, SyslogSuccess, LogWhy) for debugging and check syslog for details Syslog yes SyslogSuccess yes LogWhy yes UMask 002 UserID opendkim:opendkim KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/mail/SigningTable InternalHosts refile:/etc/mail/hosts