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

使用PEM密钥与证书配置SMTP Server后邮件发送失败,求排查

邮件未送达原因及配置疑问解答

核心问题:为何邮件未实际送达?

从返回结果看,你的SMTP服务器仅完成了本地邮件入队,但未真正完成投递流程。结合配置,核心问题集中在这几点:

  • secure: false与证书配置冲突:你加载了SSL证书却关闭加密开关,这种混合模式会让Yahoo这类接收方服务器的安全校验逻辑混乱,直接拒收或丢弃邮件。
  • 禁用AUTH命令:当前主流邮件服务商均要求发件SMTP服务器具备认证能力,禁用AUTH会被判定为非可信开放中继,邮件直接被拦截。
  • 缺失反向DNS(PTR)记录:若服务器IP未配置对应mywebsite.org或api.mywebsite.org的PTR记录,反垃圾邮件系统会直接拦截邮件,不会进入收件箱甚至垃圾箱。
  • 未配置SPF/DKIM/DMARC记录:发件域名无邮件认证记录时,接收方无法验证邮件合法性,会直接丢弃邮件。

额外疑问解答

1. 多数SMTP Server是否使用前端Web服务器的证书密钥?

是的,只要证书覆盖SMTP服务器的域名(如api.mywebsite.org或泛域名*.mywebsite.org),完全可以共用Let's Encrypt这类证书,无需单独生成SMTP专用密钥,前提是证书域名与SMTP服务器的name(HELO域名)匹配。

2. 当前配置下发件域名是api.mywebsite.org而非mywebsite.org是否合理?

合理,但需满足两个条件:

  • 需在api.mywebsite.org或主域名mywebsite.org配置对应的SPF/DKIM/DMARC记录,授权该子域名发件;
  • SMTP服务器的HELO/EHLO响应域名要与证书域名一致(你的name配置为mywebsite.org,但证书是api.mywebsite.org,域名不匹配会触发接收方校验失败)。

自我猜测验证

  • PEM密钥处理方式有误?需单独生成SMTP专用密钥?:无需单独生成,Let's Encrypt的privkey.pem和fullchain.pem是标准格式,只要文件路径正确、Node进程有读取权限即可,可通过fs.accessSync验证文件是否可读。
  • 是否应开启secure: true?:必须开启!生产环境SMTP建议用465端口(SMTPS)并设置secure: true,或用587端口(STARTTLS)并确保服务器支持自动升级加密连接。加载证书却关闭secure是核心配置冲突。
  • 使用密钥证书是否必须启用认证?:是的,证书搭配认证是现代SMTP的标准要求,禁用认证会让服务器被归类为风险开放中继,几乎所有服务商都会拦截这类邮件。

修复建议

  1. 修改SMTP配置:
environmentSpecificOptions = {
    secure: true, // 开启加密模式
    // 移除AUTH禁用配置,添加认证逻辑
    key: fs.readFileSync("/etc/letsencrypt/live/api.mywebsite.org/privkey.pem"),
    cert: fs.readFileSync("/etc/letsencrypt/live/api.mywebsite.org/fullchain.pem"),
    name: "api.mywebsite.org", // 与证书域名保持一致
    hideSize: false,
    // 添加账号密码认证逻辑
    onAuth(auth, session, callback) {
        if (auth.username === process.env.SMTP_USER && auth.password === process.env.SMTP_PASS) {
            callback(null, { user: 'authorized-sender' });
        } else {
            callback(new Error('Invalid credentials'));
        }
    }
}
  1. 配置服务器监听465端口:server.listen(465);
  2. 完善域名解析:
    • 给服务器IP添加指向api.mywebsite.org的PTR记录;
    • 在对应域名下配置SPF、DKIM、DMARC认证记录;
  3. 测试优先用自身域名邮箱,再逐步测试第三方邮箱,避免直接被大服务商拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:01:21