我正在努力实现 – 底线:邮件进入收件箱,而不是垃圾邮件文件夹。
我有一个运行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中的mykey1和mykey2 ):
*@example1.com mykey1 *@example2.com mykey2
最后,通过refile : prefix(正则expression式支持)将opendkim.conf更改为包含SigningTable :
SigningTable refile:/etc/opendkim/SigningTable
和域logging的参考(注意从KeyTable recordname1和recordname2 ):
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