![OpenDKIM 中没有签名表匹配](https://linux22.com/image/625403/OpenDKIM%20%E4%B8%AD%E6%B2%A1%E6%9C%89%E7%AD%BE%E5%90%8D%E8%A1%A8%E5%8C%B9%E9%85%8D.png)
我在 CentOS 上安装了 OpenDKIM。我使用 postfix 作为 MTA,使用 dovecot 作为 IMAP/POP3。
现在的问题是,我正在尝试为我的域名设置 DKIM。邮件是从子域名 mail.example.com 发送的。问题是邮件没有签名,并且/var/log/maillog
没有匹配的签名表[电子邮件保护]。有人能帮我解决这个问题吗?
这是 KeyTable 文件的内容
default._domainkey.mail.example.com mail.example.com:default:/etc/opendkim/keys/mail.example.com/default.private
这是签名表内容文件
*@mail.example.com default._domainkey.mail.example.com
这是 TrustedHosts 内容文件
127.0.0.1
example.com
mail.example.com
答案1
感谢所有试图提供帮助的人.. 问题是当 Signingtable 文件中存在 CR 字符时,opendkim 中的重新文件出现错误.. 因此,我以非 DOS 格式保存了该文件以删除 CR 字符,并且效果很好...
答案2
受信任主机设置是 IP 地址或网络。据我所知,将主机名放入其中不会为您做任何事情。您输入任何主机的 IP 地址,这些主机将向您的服务器发送您希望签名的电子邮件,密钥/签名表条目确定发件人域是否值得这样做。
您的签名表的格式看起来正确,并且您的密钥表的格式看起来正确。我怀疑一旦您修复了受信任的主机列表,它就会解决您的问题。
1 月 27 日添加内容:
您在 opendkim.conf 中指定签名表的方式控制着文件的处理方式。由于您在签名表中使用了“*@example.com”,因此您需要告诉 opendkim 它应该接受并处理通配符。在 opendkim 中执行此操作的方式是将“refile:”添加到配置指令的前面。如果没有该“refile:”部分,它会要求电子邮件地址完全匹配。确保它看起来像这样:
SigningTable refile:/etc/opendkim/signing_table
1 月 31 日添加内容:
还要确保您的模式设置为“sv”(用于签名和验证),而不仅仅是“v”(仅验证,默认)。
答案3
我们可以使用 dos2unix(如果未安装,请使用:apt-get install dos2unix)作为过滤器来删除 CR 和其他特殊字符:
dos2unix < /etc/opendkim/signing_table
答案4
我在 Debian 11.2 上遇到了同样的错误,并且缺少 refile:在 /etc/opendkim.conf 文件中的签名密钥文件条目上。这是修复该问题的正确条目。
SigningTable refile:/etc/mail/dkim.signingtable