在 debian 11 的 exim4 里设置 dkim 发信
需求:exim4 发信时,邮件头里打上 dkim 的签名。
步骤:
- genrsa -out dkim.key 2048 # 生成一个2048位的私匙
- openssl rsa -in dkim.key -out /dev/stdout -pubout -outform PEM # 生成公匙,复制好
- chown Debian-exim:Debian-exim dkim.key # 修改权限,让exim能读到私匙
/etc/exim4/exim4.conf.localmacros # 创建自定义的exim参数值,如以下内容:
DKIM_CANON = relaxed DKIM_SELECTOR = dkim DKIM_DOMAIN = gd.anqun.org DKIM_PRIVATE_KEY = /etc/exim4/dkim/$dkim_selector.key DKIM_STRICT = true
vi /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost # 默认dkim仅在remote_smtp的trnasport配置文件里,但本例是使用 remote_smtp_smarthost,所以需要将相应的dkim内容从 remote_smtp 复制到 remote_smtp_smarthost,如:
.ifdef DKIM_DOMAIN dkim_domain = DKIM_DOMAIN .endif .ifdef DKIM_SELECTOR dkim_selector = DKIM_SELECTOR .endif .ifdef DKIM_PRIVATE_KEY dkim_private_key = DKIM_PRIVATE_KEY .endif .ifdef DKIM_CANON dkim_canon = DKIM_CANON .endif .ifdef DKIM_STRICT dkim_strict = DKIM_STRICT .endif .ifdef DKIM_SIGN_HEADERS dkim_sign_headers = DKIM_SIGN_HEADERS .endif
之后更新exim4的配置,且重启服务:
update-exim4.conf.template -r update-exim4.conf systemctl restart exim4
- 到域名的解析面板,设置好相应的txt记录,如将 dkim._domainkey.gd.anqun.org 的 txt 值设置为:v=DKIM1; p=MIIB...
- 发封测试邮件到gmail,如成功,在 show original 里会显示 DKIM PASS
- 如有错误,请查看日志文件:/var/log/exim4/mainlog
参考: