我想要实现的目标——底线:邮件进入收件箱而不是垃圾邮件文件夹。
我有一台运行 postfix(邮件服务器)的服务器,并且有 3 个域。邮件服务器用于接收和发送邮件。
我正在使用 opendkim 签名并且已设置 DNS 记录。
经过长期的观察,我意识到邮件由于邮寄者和签名者分配不正确而被归为垃圾邮件。
假设我的邮件服务器是 mailserver.example.com,另外 3 个域是 example1.com、example2.com 和 example3.com
当有人发送电子邮件时[电子邮件保护],它应该显示:
[电子邮件保护]通过 mailserver.example.com
邮寄地址:mailserver.example.com
签名者:example1.com
我观察到 mailjet 和 amazon 电子邮件几乎不会进入垃圾邮件,事实是“可能”因为原始主机名/ip 反向解析为 mailed-by 和signed-by。
配置文件:
/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
我遗漏了什么地方?
答案1
首先,请删除这些值(如果使用 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
设置您的键表像那样:
mykey1 example1.com:recordname1:/path/to/domain.key
mykey2 example2.com:recordname2:/path/to/domain.key
设置您的签名表就像这样(注意通配符匹配和mykey1和mykey2从键表):
*@example1.com mykey1
*@example2.com mykey2
最后改变你的opendkim.conf包括签名表通过重新归档:前缀(正则表达式支持):
SigningTable refile:/etc/opendkim/SigningTable
以及供参考的域名记录(注意记录名称1和记录名称2从键表):
recordname1._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
recordname2._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
此外,请检查您的节点主机名(您从中发送邮件的节点主机名)是否内部主机文件:
server1.example1.com
server2.example2.com
mail.example1.com
mail.example2.com
再次,你可以使用重新归档:前缀可以添加类似以下内容:
*.example1.com
*.example2.com
如果您有多个主机,并且不想手动添加所有主机。如果您只接受本地邮件,则应添加本地主机这里。
您应该检查日志文件密钥管理信息系统如果您的主人不在场,则跳过签名的通知内部主机文件。
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