无法让 DKIM 与 Exim4 配合使用

无法让 DKIM 与 Exim4 配合使用

我已经尝试了所有能想到的方法来让 DKIM 与我的 Ubuntu 16.04 服务器上的 Exim4 一起工作,但从我的服务器发送的电子邮件仍然没有用 DKIM 签名!

我正在使用 Exim4,未分割配置。

我使用 /etc/exim4/dkim 中的以下命令生成了私钥和公钥:

sudo openssl genrsa -out dkim.key 1024
sudo openssl rsa -in dkim.key -pubout > dkim.pub

我在 /etc/exim4/exim4.conf.template 中编辑了以下几行:

.ifdef DKIM_DOMAIN
dkim_domain = ${lc:${domain:$h_from}}
.endif
.ifdef DKIM_SELECTOR
dkim_selector = mail
.endif
.ifdef DKIM_PRIVATE_KEY
dkim_private_key = /etc/exim4/dkim/dkim.key
.endif
.ifdef DKIM_CANON
dkim_canon = relaxed
.endif

然后运行以下命令:

sudo update-exim4.conf
sudo service exim4 restart

将此 TXT 记录添加到我的 DNS 记录中(使用公钥):

TXT mail._domainkey "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvnoSm2o5X9JoCKfYlhkRv5mj4yRscjlv5JmNj1PfBeZGp57XgriRCcA4S5/egrPI2VfKzoCwRsGp4uCD/UJ7+6DgCVNseSlD+n6n4mRANWWlfY7LvHfp8sAR80aurwNyx7/PHGg+ZukHcllvYCtZtg4jtZTrl8w1yiKXyJ3G3fQIDAQAB"

从我的服务器向我的 Gmail 地址发送了一封电子邮件,结果它直接被归为垃圾邮件。我点击了“显示原始邮件”,邮件标题中没有提到 DKIM。

请告诉我我做错了什么!谢谢!

答案1

exim允许条件运行时配置。

XXXX = something

.ifdef XXXX
<some directives>
.endif

如果变量 XXXX 被赋值,则它变为“已定义”并被.ifdef XXXX评估为TRUE。即使 XXXX 被定义为,XXXX = false它仍然以某种方式被定义。应该注释掉行以防止定义。捆绑配置包含许多配置片段,适用于许多情况,但它们通常被注释掉的控制变量禁用。

在您的情况下,您必须找到DKIM_DOMAINDKIM_SELECTORDKIM_PRIVATE_KEY其余DKIM_*变量的定义位置并取消它们的注释。

相关内容