我已经在邮件服务器上设置了 dkim-filter。我已经将 postfix 设置为使用 dkim-filter 作为邮件过滤器;但是,我在日志中收到以下信息:
Jul 7 13:00:29 magni postfix/smtpd[6742]: connect from mail-vw0-f53.google.com[209.85.212.53]
Jul 7 13:00:29 magni postfix/smtpd[6742]: D0F802BC74: client=mail-vw0-f53.google.com[209.85.212.53]
Jul 7 13:00:29 magni postfix/cleanup[6756]: D0F802BC74: message-id=<....-....mail.gmail.com>
Jul 7 13:00:34 magni dkim-filter[7039]: D0F802BC74: key retrieval failed
为什么我会遇到这种情况?我怎样才能阻止它发生?
答案1
由于这是一个入站连接,这意味着您错误配置了 dkim 过滤器,它正尝试签名而不是验证消息,并且无法获取密钥。
答案2
根据我的经验,如果发送的邮件带有 DKIM 签名,但 DNS 不可用或未报告适当的 DKIM 密钥,也会发生这种情况。为了解决这个问题,我在 /etc/dkim-filter.conf 的底部添加了以下行:
DNSError 时接受
然后:
服务 dkim-filter 重新启动
环境:Debian Squeeze、postfix、dovecot
答案3
dkim-filter 项目已被废弃 2 年多。请使用更新的最新版本opendkim软件包提供此功能。编写 dkim-filter 的同一作者将其分叉,并成为 opendkim 项目,但现在它有 2 年的错误修复和增强功能。其中一个增强功能是 ar 库(异步解析器,即 dns 查找),其中已修复了多个此类奇怪的“无法检索记录”错误。
您的发行版很可能有最新的 opendkim 软件包。还有一个非常好的指南Opendkim 和 Postfix一体化。
答案4
对 Todd Lyons 和 Marco Elestra 的回答进行补充:OpenDKIM 可以编译为执行自己的 DNS 解析(此外还可以进行 DNSSEC 检查,就像在 Debian 9 中一样)。因此,任何阻止从您的邮件服务器传出的 DNS 流量的防火墙(应允许 TCP 和 UDP 的端口 53)都会阻碍密钥检索功能。
没有特别记录,但搜索“解析器”: