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

如何结合Google使用Nodemailer?解决无效登录报错问题

解决Nodemailer+Google邮箱「Invalid Login」报错的替代方案

方案1:使用Google应用专用密码(App Password)

这是Google针对开启2步验证账号提供的替代授权方案:

  • 先确保你的Google账号已开启两步验证
  • 登录Google账号安全设置,找到「应用专用密码」选项(仅开启2步验证后可见)
  • 生成一个命名为Nodemailer的应用专用密码
  • 在Nodemailer配置中,将原账号密码替换为这个生成的专用密码

示例配置代码:

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your-email@gmail.com',
    pass: '生成的应用专用密码'
  }
});

方案2:使用OAuth2认证

这是Google推荐的更安全的第三方应用授权方式,操作步骤如下:

  1. 登录Google Cloud控制台,创建新项目
  2. 搜索并启用「Gmail API」
  3. 进入「API和服务」→「凭据」,创建「OAuth客户端ID」,应用类型选择「桌面应用」
  4. 获取客户端ID、客户端密钥,通过授权流程获取刷新令牌(可借助Nodemailer官方get-legacy-token工具快速生成)
  5. 配置Nodemailer的OAuth2认证信息

示例配置代码:

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    type: 'OAuth2',
    user: 'your-email@gmail.com',
    clientId: '你的客户端ID',
    clientSecret: '你的客户端密钥',
    refreshToken: '你的刷新令牌'
  }
});

方案3:更换其他邮件服务商

若不想折腾Google的认证机制,可切换至Outlook、SendGrid、Mailgun等服务商,以SendGrid为例:

  • 注册SendGrid账号并生成API密钥
  • 配置Nodemailer使用SendGrid的SMTP服务

示例配置代码:

const transporter = nodemailer.createTransport({
  host: 'smtp.sendgrid.net',
  port: 587,
  secure: false,
  auth: {
    user: 'apikey',
    pass: '你的SendGrid API密钥'
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:27:20