开启两步验证并使用谷歌应用密码后,Nodemailer仍报登录错误?
Nodemailer 连接Gmail SMTP 报535登录错误的排查方案
以下是几个可能导致你遇到Invalid login: 535-5.7.8 Username and Password not accepted错误的原因及解决方法:
应用密码未正确复制或生成
生成应用密码时,确保选择适配邮件服务的选项(或直接选「其他」并命名为Nodemailer),生成的16位密码是无空格的完整字符串。检查代码里的pass字段是否填入了完整的应用密码,不要省略或添加多余字符。两步验证状态异常
回到谷歌账号安全页面,确认两步验证处于已开启状态。如果两步验证中途被关闭过,之前生成的应用密码会直接失效,需要重新生成新的应用密码。SMTP配置的备选方案尝试
你的当前配置(port 465 + secure: true)是Gmail的标准SSL配置,但部分网络环境下可能存在连接问题。可以尝试切换到TLS配置:let transporter = nodemailer.createTransport({ host: "smtp.gmail.com", port: 587, secure: false, // 587端口用TLS,不需要secure: true tls: { rejectUnauthorized: false // 避免部分环境下的证书验证问题 }, auth: { user: 'myRegularEmail@gmail.com', pass: '你的完整应用密码', }, });谷歌账号的异常登录授权
登录你的Gmail邮箱,检查收件箱是否有谷歌发送的「异常登录尝试」提醒邮件。如果有,点击邮件中的「这是我」按钮,授权该登录请求,之后再重新测试邮件发送。
内容的提问来源于stack exchange,提问作者learncode
相关产品推荐
相关产品推荐

