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

Nodemailer报错553 5.7.1发件人地址被拒绝如何解决

问题原因
  • 报错Nodemailer Error: Recipient command failed: 553 5.7.1: Sender address rejected: not owned by user的核心是SMTP服务商的发件人校验规则拦截:你当前配置的SMTP服务要求发件人地址必须和SMTP认证使用的process.env.MAIL_USER账号完全一致,或是你在服务商后台提前完成验证的发件人别名,不允许直接使用未验证的访客邮箱作为发件人,这是服务商防范垃圾邮件、伪造发件人行为的通用规则。
  • 你此前以自有邮箱为发件人发信正常,就是因为发件人地址和SMTP认证账号匹配,符合校验要求。
修复方案

调整发件逻辑,保留使用体验同时符合SMTP规则:发件人地址用你自己的认证邮箱,新增replyTo字段设置为访客提交的邮箱,你收到邮件后直接回复就会自动发送到访客邮箱,完全不影响联系表单的使用逻辑。

你可以将代码中的message配置修改为如下内容:

const message = {
    from: {
        name: req.body.name, // 发件人名称可保留访客提交的名称,不触发校验
        address: process.env.MAIL_USER // 发件人地址替换为你的SMTP认证账号
    },
    replyTo: req.body.mail, // 新增回复地址为访客邮箱
    to: process.env.MAIL_USER,
    subject: req.body.subject,
    // 可在正文开头补充访客邮箱信息,方便查阅
    text: `访客提交邮箱:${req.body.mail}\n\n反馈内容:${req.body.message}`
};

额外校验点

如果修改后仍有问题,可以确认以下配置:

  • 你的SMTP服务商是否开启了第三方客户端发信权限
  • 你使用的process.env.MAIL_PW是否为SMTP专用授权码,部分服务商不支持直接用邮箱登录密码作为SMTP密码

内容的提问来源于stack exchange,提问作者Bexy-Lyn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:00:02