使用Nodemailer通过GoDaddy托管邮箱发信出现535认证失败如何解决
排查与解决步骤
- 首先修正SMTP配置参数错误:你当前的配置里
secureConnection: true搭配port:587是不匹配的。GoDaddy官方的SMTP配置规则是:端口465走SSL/TLS时才需要开启secure: true,端口587走STARTTLS时需要设置secure: false,额外加requireTLS: true。正确的配置参考:
// 465端口版本(推荐) exports.transporter = nodemailer.createTransport({ host: "smtpout.secureserver.net", secure: true, port: 465, auth: { user: '你的完整邮箱地址', // 必须填写完整的带域名的邮箱,不能只写@前缀 pass: '你的邮箱登录密码' } }) // 587端口版本 exports.transporter = nodemailer.createTransport({ host: "smtpout.secureserver.net", secure: false, port: 587, requireTLS: true, auth: { user: '你的完整邮箱地址', pass: '你的邮箱登录密码' } })
- 验证账号密码有效性:先直接通过网页端登录GoDaddy的web邮箱,确认你配置里填的账号密码可以正常登录。如果近期修改过邮箱密码,要确认配置里的密码是更新后的版本。
- 检查邮箱安全限制:GoDaddy默认会拦截第三方客户端的登录请求,你需要登录GoDaddy账号后台,进入邮箱管理的安全设置页,开启允许第三方应用访问权限;如果你的邮箱开启了两步验证,必须生成专用的应用密码代替原密码填写到配置里,不能直接用原登录密码。
- 排除IP拦截问题:如果你的服务部署在非常用地区的服务器,GoDaddy可能会拦截该IP的登录请求,可以先在本地运行代码测试是否能发送成功,确认是IP问题后可以在GoDaddy邮箱后台把服务器IP加入白名单。
- 验证发件人参数:后续调用
sendMail方法时,from字段必须和你配置里auth.user的地址完全一致,不能填写其他邮箱作为发件人,否则也会触发认证错误。
内容的提问来源于stack exchange,提问作者Prithiraj Goswami
相关产品推荐
相关产品推荐

