You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iRedMail邮件缺失DKIM头问题排查求助

iRedMail DKIM签名问题排查指南

1. 我的邮件是否应当被DKIM签名?

必须签名。对外发送至其他邮件服务商的邮件,DKIM是核心反垃圾邮件机制之一——收件方服务商通过验证DKIM签名确认邮件确实来自你的域名,而非伪造。你目前无法外发邮件的核心原因大概率就是缺少这个签名,导致收件方直接拒收(而非扔进垃圾箱)。

2. 哪个服务负责为邮件添加DKIM头?

在iRedMail环境中,Amavisd-new是负责DKIM签名的核心服务。它会读取数据库中存储的DKIM密钥信息,接收Postfix转发来的外发邮件并添加DKIM签名头,再回传给Postfix发送出去。

3. 可通过哪些途径排查签名失败的原因?

  • 查看Amavisd日志:执行tail -f /var/log/amavisd.log,搜索dkim相关关键词,重点看是否有密钥查找失败、权限不足、域名匹配错误等报错,这些直接反映签名失败的原因
  • 检查Postfix与Amavisd的联动配置:
    • 打开/etc/postfix/main.cf,确认content_filter配置为amavis:[127.0.0.1]:10024,确保邮件会转发给Amavisd处理
    • 查看/etc/postfix/master.cf,确认Amavisd的转发规则(amavis unix - - n - 2 smtp和对应的127.0.0.1:10025 inet n - n - - smtpd)是否正确配置
  • 验证DKIM密钥与DNS记录一致性:
    • 服务器上的DKIM公钥路径一般为/var/lib/dkim/[你的域名].pub,复制公钥内容
    • 检查DNS中的TXT记录:记录名称应为dkim._domainkey.[你的域名],记录值要和服务器公钥完全一致(注意不要多空格、大小写错误,公钥开头的v=DKIM1; k=rsa; p=要保留)
  • 测试实际发件的签名状态:
    • 给自己的外部邮箱(如Gmail、Outlook)发送测试邮件,查看邮件的原始头信息
    • 如果找不到DKIM-Signature字段,说明邮件根本没触发Amavisd的签名流程;如果有该字段但验证失败,检查字段中的d=(域名)、s=(selector)是否与DNS配置匹配
  • 重新生成并同步DKIM密钥:
    • 若怀疑密钥本身有问题,执行amavisd-new genrsa -b 2048 /var/lib/dkim/[你的域名]重新生成密钥
    • 更新DNS中的TXT记录,等待DNS生效(可通过dig dkim._domainkey.[你的域名] TXT验证)后再测试发件
  • 检查Amavisd的DKIM签名开关:
    • 打开/etc/amavisd.conf,查找dkim_signature_options_bysender_maps或@dkim_signature_options_bysender配置,确认针对你的域名是否设置了dkim_sign => 1(开启签名),而非关闭状态

内容的提问来源于stack exchange,提问作者user2741831

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:01:11