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

使用替代邮箱登录时Nodemailer不接受Gmail用户名和密码

问题描述

已使用应用密码(app password)登录Gmail账号,但当用非Gmail的替代邮箱(无论是创建谷歌账号时使用的现有非Gmail邮箱,还是后续添加的替代邮箱)在Nodemailer中尝试登录时,出现以下认证错误:

Error: {
  code: 'EAUTH',
  response: '535-5.7.8 Username and Password not accepted. Learn more at\n' +
'535 5.7.8  <a href="https://support.google.com/mail/?p=BadCredentials" rel="nofollow noreferrer">https://support.google.com/mail/?p=BadCredentials</a> e14-20020adfef0e000000b0030c2e3c7fb3sm10043909wro.101 - gsmtp',
  responseCode: 535,
  command: 'AUTH PLAIN'
}

注:该替代邮箱可正常登录accounts.google.com,但无法在Nodemailer中完成SMTP认证。

解决方法

核心原因

谷歌SMTP服务仅接受Gmail主邮箱地址作为SMTP认证的用户名,即使替代邮箱能登录网页端账号,也无法用于SMTP层面的身份验证。

具体操作

  1. 替换SMTP认证用户名为Gmail主邮箱
    在Nodemailer的配置中,将auth.user字段改为你的Gmail主邮箱(格式为xxx@gmail.com),应用密码保持不变。示例配置:
    const transporter = nodemailer.createTransport({
      service: 'gmail',
      auth: {
        user: '你的主gmail账号@gmail.com', // 此处必须填Gmail主邮箱
        pass: '你的应用密码'
      }
    });
    
  2. 设置发件人显示为替代邮箱
    若需要收件人看到的发件人邮箱是替代邮箱,无需修改SMTP认证信息,只需在邮件选项的from字段指定替代邮箱即可:
    const mailOptions = {
      from: '"你的名称" <你的替代邮箱@xxx.com>', // 这里设置替代邮箱作为显示发件人
      to: '收件人邮箱@xxx.com',
      subject: '测试邮件',
      text: '这是用Nodemailer发送的测试邮件'
    };
    
  3. 确认替代邮箱已验证
    确保你的替代邮箱已在谷歌账号设置中完成验证步骤,否则无法作为发件人显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:04:59