我已经尝试了所有我能想到的让 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。
请告诉我我做错了什么!谢谢!
exim
允许有条件的运行时配置。如果变量 XXXX 分配了某个值,则它变为“已定义”并
.ifdef XXXX
评估为TRUE
。即使 XXXX 被定义为XXXX = false
它仍然以某种方式定义。应将行注释掉以防止定义。捆绑的配置包含许多适用于许多情况的配置片段,但它们通常被注释掉的控制变量禁用。在您的情况下,您必须找到定义的
DKIM_DOMAIN
,和其余变量的位置并取消注释它们。DKIM_SELECTOR
DKIM_PRIVATE_KEY
DKIM_*