Node.js Gmail错误:454.7.0由于临时系统问题,无法进行身份验证
我在nodejs/express.js应用程序中使用nodeEmailer模块 我使用gmail作为传输工具 似乎每发送20封成功的电子邮件,我就会收到以下错误: 由于临时系统问题,454.7.0无法进行身份验证 我正在测试一个发票系统,所以我会定期向同一个电子邮件地址发送电子邮件进行测试 我没有使用谷歌应用程序,我已经将Gmail安全设置为使用低安全性的应用程序 发票很重要,如果我不能保证所有发票都能寄给我的客户,那就糟糕了 这正常吗Node.js Gmail错误:454.7.0由于临时系统问题,无法进行身份验证,node.js,express,gmail,gmail-api,nodemailer,Node.js,Express,Gmail,Gmail Api,Nodemailer,我在nodejs/express.js应用程序中使用nodeEmailer模块 我使用gmail作为传输工具 似乎每发送20封成功的电子邮件,我就会收到以下错误: 由于临时系统问题,454.7.0无法进行身份验证 我正在测试一个发票系统,所以我会定期向同一个电子邮件地址发送电子邮件进行测试 我没有使用谷歌应用程序,我已经将Gmail安全设置为使用低安全性的应用程序 发票很重要,如果我不能保证所有发票都能寄给我的客户,那就糟糕了 这正常吗 app.get('/thankyou', function
app.get('/thankyou', function(req,res) {
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'somethinggggg@gmail.com',
pass: 'password here'
}
});
res.render('thankyou_email', function(err,html) {
var mailOptions = {
from: 'John Doe <somethinggggg@gmail.com>',
to: 'someoneee@icloud.com',
subject: 'Your order was received',
html: html
};
transporter.sendMail(mailOptions, function(error, info) {
if(error) {
console.log('error1: ' + error);
transporter.sendMail(mailOptions, function(error, info) {
if(error) {
console.log('error2: ' + error);
} else {
console.log('cool bro everything works2');
console.log(info);
}
});
} else {
console.log('cool bro everything works');
console.log(info);
}
});
res.render('thankyou_page');
});
app.get('/thankyou',函数(req,res){
var transporter=nodeEmailer.createTransport({
服务:“Gmail”,
认证:{
用户:'somethinggggg@gmail.com',
密码:“密码在这里”
}
});
res.render('thankyou\u email',函数(err,html){
var mailpoptions={
摘自:约翰·多伊,
致:'someoneee@icloud.com',
主题:“您的订单已收到”,
html:html
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log('error1:'+error);
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log('error2:'+error);
}否则{
log('cool bro everythings works2');
控制台日志(信息);
}
});
}否则{
console.log('cool bro everythings works');
控制台日志(信息);
}
});
res.render(“谢谢页面”);
});
正如你所看到的,如果我有一个错误,我会再次尝试重新发送电子邮件,但我仍然收到相同的错误
还请注意,我使用了res.render()两次。我认为这很奇怪,但它仍然有效。我使用的第一个res.render()生成电子邮件的html,最后一个res.render()生成电子邮件的html是将响应中的html呈现回客户端。我曾经两次收到发送头的错误,但我不再看到该错误。尽管如此,它仍然有效
这是谁的错?我?Nodmailer?Gmail?
如果我注册了Google apps,我还会有这个问题吗?我遇到过一些文档,其中提到,如果在设置transporter对象时使用XOAuth2令牌生成器作为auth.XOAuth2
的值,那么您就不需要像使用OAuth2一样设置user
或pass
的值d表示已验证
如果缺少或过期,XOAuth2生成器将生成所需的accessToken
本身。如果身份验证失败,将请求新的令牌并重试一次身份验证。如果仍然失败,则返回错误
文档中给出了示例代码。虽然我个人没有尝试过使用它,但我希望它能与您一起使用。:)您使用的是哪个版本的NodeEmailer和node?我使用的node 4.4.2和最新的NodeEmailer没有任何问题。@gunjan我使用的是v4.1.2和node.js以及最新版本的NodeEmailerDid。您有没有发现这个问题?在线阅读一些线程,这似乎是Google内部的问题。