使用Heroku / node.js / emailjs从gmail发送间歇性电子邮件时出现身份验证错误

时间:2017-11-16 15:39:02

标签: node.js email session authentication heroku

我在Heroku上运行一个刮刀应用程序,每隔一段时间就会发送一次电子邮件。有时它会每2分钟一次,有时它会在2天内发送任何东西 - 取决于刮刀发现的内容。我遇到了电子邮件身份验证的不断错误。我尝试使用nodemailer和emailjs配置电子邮件。两者都遇到了同样的问题。我想知道是否是因为Heroku服务器的分发方式?

我已采取以下步骤:

1)解锁帐户:https://accounts.google.com/DisplayUnlockCaptcha

2)在此处允许安全性较低的应用:https://myaccount.google.com/lesssecureapps

使用nodemailer和emailjs,我注意到它可以工作几个小时,但如果一天没有发送电子邮件,一旦它尝试发送另一个电子邮件,我就会收到验证错误。以下是使用emailjs的代码,该代码可以运行几个小时然后因身份验证错误而失败:

var server  = email.server.connect({
       user:    process.env.CRAWLER_MAIL, 
       password:process.env.CRAWLER_PWD, 
       host:    "smtp.gmail.com", 
       ssl:     true
    });

    var message = {
    text:   "Placeholder", 
    from:   'NAME <'+ process.env.CRAWLER_MAIL+'>', 
    to:     eachEmail[0],
    subject:    emailSubject,
    attachment: 
    [
      {data:emailBody, alternative:true}
    ]
    };

    server.send(message, function(err, message) { console.log(err || message); });

以下是Heroku日志中的错误:

 Error: authorization.failed (bad response on command '[redacted]': -5.7.14 https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=[redacted]-)

我不会对此帐户使用两步验证,因此我认为我不需要应用密码。关于我如何能够始终如一地工作的任何其他想法?

0 个答案:

没有答案