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

Nodemailer配置DKIM密钥失效,邮件落入垃圾箱问题排查

问题:DKIM验证失败导致邮件进入垃圾箱

我使用Nodemailer包从自定义域名邮箱向用户发送OTP验证码。3个月前配置DKIM签名后,邮件可正常进入收件箱,但如今使用完全相同的配置,邮件却落入垃圾箱。查看邮件头发现:

smtp.mailfrom=<$_MYDOMAIN>.com; dkim=fail (no key for signature)

我的代码如下:

let transporter = nodemailer.createTransport(
    {
      host: process.env.AUTH_EMAIL_HOST,
      port: process.env.AUTH_EMAIL_PORT,
      secure: true,
      dkim: {
        domainName: process.env.DKIM_DOMAIN,
        keySelector: process.env.DKIM_SELECTOR,
        privateKey: fs.readFileSync(process.env.DKIM_PRIVATE_KEY_FILE_PATH, "utf8"),
        cacheDir: '/tmp',
        cacheTreshold: 2048,
      },
      auth: {
        user: process.env.AUTH_EMAIL,
        pass: process.env.AUTH_PASS,
      }
    }
);

const otp = `${Math.floor(100000 + Math.random() * 900000)}`

//mail options
const mailOptions = {
    from: process.env.AUTH_EMAIL,
    to: email,
    subject: "Verify your email",
    html: `<p>Enter <b>${otp}</b> in the app to verify your email adress and complate the signup</p>
           <p>This code <b>expires in 1 hour</b></p>`,

};

已知信息:

  • Nodemailer版本:"nodemailer": "^6.9.2",已尝试更新及回退旧版本,问题仍存在
  • 确认邮箱托管的DKIM密钥和签名未做任何更改

可能的问题原因

  • DKIM私钥文件读取异常:检查process.env.DKIM_PRIVATE_KEY_FILE_PATH指向的文件是否存在、程序是否有读取权限,读取后的私钥内容是否完整(是否包含正确的页眉页脚、无多余字符)。可以直接打印私钥内容,和生成时的原始私钥对比。
  • DKIM选择器/域名不匹配:确认process.env.DKIM_SELECTOR和process.env.DKIM_DOMAIN与DNS记录中的值完全一致(注意选择器的大小写,部分DNS服务对大小写敏感)。
  • DNS记录解析异常:虽然未修改DKIM记录,但可能存在DNS缓存未更新或服务商隐性变更。用命令dig TXT <你的选择器>._domainkey.<你的域名>查询DNS记录,确认返回的公钥与本地私钥对应的公钥一致。
  • Nodemailer缓存干扰:配置中的cacheDir和cacheTreshold可能导致缓存的签名信息损坏。尝试删除/tmp下的DKIM缓存文件,或临时移除缓存配置后测试。
  • 发件人域名与DKIM域名不一致:检查mailOptions.from中的邮箱域名是否和DKIM配置的domainName完全匹配。例如from是support@a.com但DKIM配置的domain是b.com,会直接导致验证失败。
  • SMTP服务器自动覆盖DKIM签名:部分邮件服务商(如第三方邮件中继)会自动添加自身的DKIM签名,可能覆盖你通过Nodemailer生成的签名。查看邮件头中的所有DKIM签名条目,确认哪一个被标记为fail。
  • 私钥格式错误:确认私钥文件是标准的PKCS#8格式,包含正确的-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----标记,无多余空白行或格式混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:43:13