过去几周我一直有这个问题,每次都在本地工作,但是一旦我将它部署到我的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);
}
})
}
答案 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一样多。确保将它们应用于正确的帐户。
如果您遇到这些问题或无法登录,请首先检查以确保您使用的密码正确。