使用Nodemailer调用Gmail API时遭遇EAUTH错误求助
Gmail + Nodemailer 出现EAUTH错误的解决办法
确认应用专用密码的有效性
- 必须先给Gmail账号开启两步验证,应用专用密码仅对开启该功能的账号生效。
- 生成密码时,选择的应用类别需为「邮件」或「其他(自定义名称)」,选错类别会导致密码无效。
验证环境变量加载是否正确
- 在代码中添加日志,确认
process.env.USER_EMAIL和process.env.USER_PSW读取到的是正确值:console.log('当前邮箱:', process.env.USER_EMAIL); console.log('当前密码:', process.env.USER_PSW); - 若使用dotenv管理环境变量,确保
.env文件在项目根目录,且代码顶部已引入require('dotenv').config();
- 在代码中添加日志,确认
调整Nodemailer的SMTP配置
替换自动service: 'gmail'配置,手动指定SMTP参数避免自动切换到OAuth2模式:const nodemailer = require("nodemailer"); const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, // 587端口使用非SSL,465端口则设为true auth: { user: process.env.USER_EMAIL, pass: process.env.USER_PSW, }, });排查账号状态
- 登录Gmail网页端,确认账号无异常验证提示、未被限制使用邮件服务。
- 无需开启「允许低安全性应用」,应用专用密码本身已绕过该限制,但需确保账号无其他安全限制。
内容的提问来源于stack exchange,提问作者Yessine Ben Hlima
相关产品推荐
相关产品推荐

