Nodemailer,Heroku,Gmail,无效登录 - 在本地运行

时间:2017-07-06 19:55:59

标签: javascript node.js heroku nodemailer

过去几周我一直有这个问题,每次都在本地工作,但是一旦我将它部署到我的heroku服务器,它会给我invalid login错误。我已经进入帐户并且可以访问不太安全的应用程序。并且凭据是正确的,并且它每次都在localhost上工作。有什么我想念的吗?

quickSendMail: function(routeBody, callback) {
//configuring the nodemailer for email notifications
  var smtpConfig = {
          host: 'smtp.gmail.com',
          port: 465,
          secure: true, // use SSL
          auth: {
              user: 'mysmtpemail123',
              pass: '******'
            }
        };

  var mailOptions = {
          from: 'SageStorm Site <mysmtpemail123@gmail.com>',
          to: ['my email'],
          subject: routeBody.subject,
          html: 'my message'
        };

  var transporter = nodemailer.createTransport(smtpConfig);

  transporter.verify(function(error, success) {
        if (error) {
                console.log(error);
        } else {
                console.log('server is ready to send emails');
          }
        })
  transporter.sendMail(mailOptions, function(error, info) {
        if (error) {
              console.log(error);
              return callback(err, null);
        } else {
              console.log('Message sent: ' + info.response);
              return callback(null, info);
          }
        })
    }

4 个答案:

答案 0 :(得分:3)

尝试this,它将允许计算机远程访问您的gmail。

如果这不起作用,请尝试将您的nodemailer更新到最新版本。

答案 1 :(得分:0)

根据https://support.google.com/accounts/answer/6009563,转到https://accounts.google.com/b/0/DisplayUnlockCaptcha并允许访问,然后重试..

还根据nodemailer(https://github.com/nodemailer/nodemailer#delivering-bulk-mail)上的文档

  

我在使用Gmail时遇到问题Gmail运作良好或无法正常运行   工作。切换到其他服务可能更容易   而不是解决Gmail问题。如果Gmail不适合您   然后不要使用它。

答案 2 :(得分:0)

我为这个问题设置了赏金,但是在浏览完Nodemailer docs / Github之后,看来使用Gmail只会导致头痛。

根据Nodemailer docs ...

“ ...... Gmail希望用户是实际用户,而不是机器人,因此,每次登录尝试时,它都会运行大量启发式方法,并阻止任何看起来可疑的内容,以保护用户免遭帐户劫持尝试。

例如,如果您的服务器位于另一个地理位置,则可能会遇到麻烦–一切都在您的dev机器上运行,但消息在生产中被阻止。”

我相信第二件事是我的问题;我的Nodemailer在我的机器上运行没有问题,但是当我将应用程序推送到Heroku时立即失败。

至于修复,我唯一的解决方法是使用其他电子邮件提供商。我尝试使用的所有电子邮件帐户均已获得完全授权,可允许其他登录和不太安全的应用程序; Google已经提供了允许帐户使用的所有方法,我完全相信,不可能与Nodemailer和Gmail取得一致的结果

使用Outlook / Hotmail对我有用。我还尝试了切换到其他Gmail帐户。它成功运行了几次,然后返回到以前的状态。

答案 3 :(得分:0)

大多数情况下,如果最终收到Nodemailer的此类错误,则Google列出的这些选项之一可以解决该问题,请花一些时间来使用要使用的google帐户,这是必需的设置。

Google已listed为我们解决了所有潜在问题和解决方案。与您打开less secure apps setting一样多。确保将它们应用于正确的帐户。

第1步:检查您的密码

如果您遇到这些问题或无法登录,请首先检查以确保您使用的密码正确。

步骤2:尝试这些故障排除步骤

  • 如果您为帐户启用了两步验证,则可能需要输入App password而不是常规密码。
  • 通过https://mail.google.com的Gmail网络版登录您的帐户。登录后,请尝试再次登录邮件应用。
  • 访问Display Unlock Captcha并使用您的Gmail用户名和密码登录。如果需要,请在变形的图片中输入字母。
  • 您的应用可能不支持最新的安全标准。尝试更改一些设置以allow less secure apps访问您的帐户。
  • 确保您的邮件应用未设置为过于频繁地检查新电子邮件。如果您的邮件应用程序每10分钟检查一次新邮件超过一次,则该应用程序对您帐户的访问可能会被阻止。