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

Nodemailer联系表单本地运行正常,部署Heroku后报EAUTH错误如何解决?

问题排查与解决方案

EAUTH错误本质是Gmail SMTP服务身份验证失败,本地运行正常但Heroku部署后出错,按以下优先级排查:

  • 第一步:确认Heroku环境变量配置正确
    本地开发时你大概率用.env文件存储MAIL_USER和MAIL_PASS,但该文件不会被部署到Heroku。需要登陆Heroku后台,进入对应项目的「Settings」页面,找到「Config Vars」板块,确认已经添加了这两个环境变量,值和本地测试时完全一致,无多余空格或格式错误。
    可以在Heroku CLI执行heroku config命令查看已配置的环境变量,确认两个参数存在且值正确。
  • 第二步:使用Gmail应用专用密码登录
    目前Gmail已经全面停止支持「低安全性应用访问」,直接使用账号登录密码会被拦截。需要先为你的Google账号开启两步验证,之后生成16位的应用专用密码,将该密码作为MAIL_PASS的值替换原有账号密码。
  • 第三步:调整Nodemailer SMTP配置
    直接指定Gmail SMTP参数比使用service: 'gmail'兼容性更强,修改传输器配置如下:
    const transporter = nodemailer.createTransport({
      host: 'smtp.gmail.com',
      port: 465,
      secure: true, // 465端口需开启secure
      auth: {
          user: process.env.MAIL_USER,
          pass: process.env.MAIL_PASS
      }
    });
    
  • 第四步:放行Gmail安全拦截
    登陆你的Gmail账号,进入「安全」页面,查看「最近的安全活动」板块,找到来自Heroku的被拦截登录请求,手动信任该操作即可完成放行。

你可以在部署前在代码中添加日志打印环境变量的值,部署后执行heroku logs --tail查看运行日志,确认环境变量被正确读取,进一步缩小问题范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:57:05