使用nodemailer发送邮件时遇535-5.7.8登录无效错误求助
解决Nodemailer连接Gmail时的535-5.7.8登录错误
可能的原因及对应解决方法
1. Google账户权限限制
Google已停止支持普通账户的“不太安全的应用访问”,必须使用应用专用密码:
- 先确保你的Google账号开启了两步验证
- 登录Google账户后台,进入「安全」板块,找到「应用专用密码」,生成一个仅用于Nodemailer的密码,替换代码中
process.env.PASSWORD的值
2. 环境变量加载异常
确认process.env.PASSWORD是否正确读取:
- 检查.env配置文件(若使用dotenv)中的PASSWORD字段,确保没有拼写错误、多余空格
- 临时在代码中添加
console.log(process.env.PASSWORD),验证输出的密码和生成的应用专用密码完全一致
3. SMTP配置兼容性问题
当前配置的secure: true+port:465是合规的,但可尝试切换为STARTTLS模式:
var transporter = nodemailer.createTransport({ host: "smtp.gmail.com", secure: false, port: 587, auth: { user: 'kesterdaniel401@gmail.com', pass: process.env.PASSWORD }, tls: { rejectUnauthorized: false } });
4. 登录请求被安全拦截
登录Google账户,查看「最近的安全活动」,如果有来自服务器IP的登录被标记为可疑,点击「这是我发起的」允许该登录请求
额外验证步骤
在创建transporter后,可先调用验证方法提前排查连接问题:
transporter.verify(function(error, success) { if (error) { console.log(error); } else { console.log("SMTP服务器连接正常"); } });
内容的提问来源于stack exchange,提问作者blocboyx
相关产品推荐
相关产品推荐

