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

已开低安全权限关两步验证,Nodemailer对接Gmail仍报授权错误

Nodemailer 对接 Gmail 535 登录报错修复方案

错误根因

报错返回535-5.7.8 Username and Password not accepted,并非你填写的账号密码本身有误,核心触发逻辑为:

  • Gmail 已永久关闭「允许低安全应用直接通过账号密码访问SMTP服务」的授权通道,即便你在后台手动开启该权限、关闭两步验证,直连的认证请求也会被服务端直接拦截
  • 你参考的旧版Nodemailer对接指引,已经不符合当前Gmail的授权规则

合规配置流程

  • 前置准备:给目标Gmail账号开启两步验证,这是生成应用专用密码的强制要求,不可关闭
  • 生成认证凭证:进入Gmail账号安全设置模块,找到「应用专用密码」生成入口,创建专属的16位应用密码。Nodemailer认证时必须填写这串专用密码,不能直接使用日常登录网页端的账号密码
  • 替换Nodemailer传输配置的认证字段:
    const contactEmail = nodemailer.createTransport({
      host: 'smtp.gmail.com',
      port: 587,
      secure: false,
      auth: {
        user: "你的完整Gmail账号@gmail.com",
        pass: "生成的16位应用专用密码(无需去除空格)"
      }
    });
    
  • 修复原有代码的逻辑缺陷:
    • 原代码中邮件配置的to字段为空值,即便认证通过也无法完成发信,需要填写实际接收表单消息的目标邮箱地址
    • 原代码中邮件配置的from字段不能直接传入前端提交的用户姓名,需符合SMTP发信格式,例如:from: "网站联系表单" <你的Gmail账号邮箱>,否则会被发信规则拦截

连通性验证

重启后端服务后观察控制台输出,当出现Ready to Send提示时,说明SMTP通道已经连通,可提交前端表单测试完整发信流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 06:36:04