我想通过 DKIM 提高外发电子邮件的可传递性。我已经为 postfix 安装了 dkim-filter,使用本教程 https://help.ubuntu.com/community/Postfix/DKIM
它似乎正在工作,我的 /var/log/mail.log 显示它开始:
Aug 10 18:34:13 mail dkim-filter[5284]: Sendmail DKIM Filter v2.8.2 starting (args: -x /etc/dkim-filter.conf -u dkim-filter -P /var/run/dkim-filter/dkim-filter.pid -p inet:8891@localhost)
但是,当我发送电子邮件时没有生成任何标题,我不知道为什么。
这是我的 /etc/dkim-filter.conf https://gist.github.com/6dc92c7efc29aa45991f
这是我添加到 /etc/postfix/main.cf 底部的内容
# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
有任何想法吗?谢谢!
PS 我在 feedmailpro.com 上也为它设置了 DNS 条目(可能仍在传播),但我认为如果没有传出电子邮件中的标题,它甚至不会被检查。谢谢!
好的,我知道为什么了。这是因为我发送的电子邮件的发件人地址与我的域不同。一旦我将发件人地址更改为[email protected]的地址,它就开始签署它们。
事后看来,这很明显,因为我猜这就是域密钥的作用,即签署来自域。出于某种原因,我假设它是基于返回路径或邮件服务器 IP 进行签名,而不是发件人地址。
由于我正在构建 ESP(电子邮件服务提供商),因此我需要能够从多个域发送电子邮件。所以我的下一个挑战是让它为所有域签名。
编辑:此处发布的解决方案 DKIM 签署来自任何域的传出邮件(使用 Postfix 和 Ubuntu)
我在多个域上安装了带有 DKIM 签名的后缀。我发现配置 amavisd-new 来执行该签名比使用 dkim-filter 更容易。无论如何,我会在我的电子邮件堆栈中添加 amavisd-new 以进行垃圾邮件检查。