使用 nodejs(nodemailer) 设置 stmp 邮件



我正在尝试使用一个简单的nodejs应用程序发送电子邮件。但是我得到了一个错误 错误是:

错误:登录无效:534-5.7.14 请通过您的网络浏览器登录并 534-5.7.14 然后重试。 534-5.7.14 欲了解更多信息,请访问 534 5.7.14 https://support.google.com/mail/answer/78754 22-v6sm29249729pfl.126 - gsmtp at SMTPConnection._formatError (C:\Users\USER\Desktop\codeworkrode_modulesodemailer\lib\smtp-connection\index.js:606:19) at SMTPConnection._actionAUTHComplete (C:\Users\USER\Desktop\codeworkrode_modulesodemailer\lib\smtp-connection\index.js:1335:34) at SMTPConnection._responseActions.push.str (C:\Users\USER\Desktop\codeworkrode_modulesodemailer\lib\smtp-connection\index.js:366:26) at SMTPConnection._processResponse (C:\Users\USER\Desktop\codeworkrode_modulesodemailer\lib\smtp-connection\index.js:762:20) at SMTPConnection._onData (C:\Users\USER\Desktop\codeworkrode_modulesodemailer\lib\smtp-connection\index.js:558:14) at TLSSocket._socket.on.chunk (C:\Users\USER\Desktop\codeworkrode_modulesodemailer\lib\smtp-connection\index.js:510:47) at emitOne (events.js:116:13) at TLSSocket.emit (events.js:211:7) at addChunk (_stream_readable.js:263:12) at readableAddChunk (_stream_readable.js:250:11) at TLSSocket.Readable.push (_stream_readable.js:208:10) at TLSWrap.onread (net.js:597:20)

我的代码是这样的:

var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
service: 'gmail',
secure: false,
// port: 25,
auth: {
user: 'surendrap7208@gmail.com',
pass: ''
}
/* tls: {
rejectUnauthorized: false
}*/
});

var mailOptions = {
from: 'surendrap7208@gmail.com',
to: 'surendrap720@gmail.com',
subject: 'Sending Email using Node.js',
text: 'Hello'
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);=
}
});

出于安全考虑,我删除了密码。

仔细检查您的凭据,还需要在Gmail中允许安全性较低的应用程序。

1) 转到 https://myaccount.google.com/lesssecureapps

2)启用安全性较低的应用程序选项

我有另一种解决方案。如果您想出于安全目的删除密码,那么您也可以使用我的解决方案。

首先,您需要一些发件人帐户凭据,您可以从此处创建它: https://console.developers.google.com/projectselector/apis/credentials?supportedpurview=project

Node.js, Nodemailer, SMTP 问题

这是我的测试代码 [文件:服务器.js]

//start server
var http = require('http');
// Create a Transport instance using nodemailer
var nodemailer = require('nodemailer');
var smtpTransport = nodemailer.createTransport({
host: "smtp.gmail.com",
auth: {
type: "OAuth2",
user: "sender_email_id",
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET",
refreshToken: "YOUR_REFRESH_TOKEN"
}
});
var htmlBody = '<h2>Hello Body</h2>';
// Setup mail configuration
var mailOptions = {
from: 'serder_email_id', // sender address
to: 'recipent_email_id', // list of receivers
subject: 'TEST SUBJECT', // Subject line
text: 'Hello Body', // plaintext body
html: htmlBody // html body
};
var app = http.createServer(function (req, res) {
// send mail
smtpTransport.sendMail(mailOptions, function(error, info) {
res.writeHead(200, {'Content-Type': 'text/html'});
if (error) {
console.log('error', error)
res.write('Error');
res.end();
} 
console.log('Message %s sent: %s', info.messageId, info.response);
smtpTransport.close();
res.write('Email sent');
res.end();
});
}).listen(3000); 

最新更新