【问题标题】:Nodemailer not working in herokuNodemailer在heroku中不起作用
【发布时间】:2018-02-03 20:49:31
【问题描述】:

我很好奇是否有人遇到了我目前遇到的问题。我在 cloud9 工作,并且 nodemailer 运行良好,所有电子邮件都是从我制作的表格发送的。我制作了一个小型服务器并部署到heroku,其中代码中没有任何更改,只有一个环境变量(所以没有人看到我的密码)并且电子邮件没有发送。研究了几个小时,想知道是否有人知道这件事?我知道 gmail 不喜欢奇怪的应用程序访问我在设置中调整的帐户。但是想也许问题出在heroku上?对此事的任何见解将不胜感激。

【问题讨论】:

  • 我目前不在我的电脑旁,我会在它旁边发布代码,我很抱歉。

标签: javascript html npm


【解决方案1】:

今天早上我遇到了同样的问题,我花了一段时间才弄清楚。显然问题不在于 Heroku 或 NodeMailer,而在于我使用的 gmail 帐户。 我的好建议是记录您的错误,这将使您更好地了解问题所在。

$.ajax({
type: "POST",
  url: url + 'mail',
  data: JSON.stringify(req),
  contentType : "application/json",
  success: function(data){
    console.log("Network success " + data);
  },
  error: function(e,status,msg){
        console.log("Network error." + msg)
  }
});

您还需要记录您的 nodemailer 响应。像这样的。

transporter.sendMail(mailOptions, function(error, info){

  console.log("error : " + JSON.stringify(error));
  console.log("info : " + JSON.stringify(info))

});

登录后,我意识到 gmail 要求我再次登录浏览器进行某种安全检查。 清除支票后,我就可以从我的 Node.js 应用程序发送邮件了。

【讨论】:

  • 这很痛苦!我很高兴你让它工作。我在 gmail 帐户上修改了一段时间的设置。但我的问题在于我在 heroku 上定义的环境变量......我脑子有问题,并且在 heroku 上使用 process.env.email/password,这仅在我正在使用的本地服务器中需要。
  • 这可以通过以下方式临时解决:accounts.google.com/DisplayUnlockCaptcha
猜你喜欢
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 2018-12-18
  • 2017-12-22
相关资源
最近更新 更多