在 debian 11 的 exim4 里设置 dkim 发信

需求:exim4 发信时,邮件头里打上 dkim 的签名。
步骤:

  1. genrsa -out dkim.key 2048 # 生成一个2048位的私匙
  2. openssl rsa -in dkim.key -out /dev/stdout -pubout -outform PEM # 生成公匙,复制好
  3. chown Debian-exim:Debian-exim dkim.key # 修改权限,让exim能读到私匙
  4. /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
  5. 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
  6. 之后更新exim4的配置,且重启服务:

    update-exim4.conf.template -r
    update-exim4.conf
    systemctl restart exim4
  7. 到域名的解析面板,设置好相应的txt记录,如将 dkim._domainkey.gd.anqun.org 的 txt 值设置为:v=DKIM1; p=MIIB...
  8. 发封测试邮件到gmail,如成功,在 show original 里会显示 DKIM PASS
  9. 如有错误,请查看日志文件:/var/log/exim4/mainlog

参考:

标签: debian, exim, dkim

添加新评论