这是我的设置控制器:
var sendSmtpMail = function (req,res) {
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "asdfqweerrccb@limitlesscircle.com",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "transactions@limitlesscircle.com",
to:'umaraja1124@gmail.com',
subject: req.body.subject+"nodejs working ?",
text: "Hello world ?",
}
transport.sendMail(mailOptions, function(error, response){
if(error){
res.send("Email could not sent due to error: "+error);
console.log('Error');
}else{
res.send("Email has been sent successfully");
console.log('mail sent');
}
});
在邮递员中,我得到了这样的错误:
由于错误无法发送电子邮件:
Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials g7sm64435626pfj.29 - gsmtp
原文由 uma raja 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新 (2022-05-02)
正如评论中提到的并直接引用自谷歌:
所以底部代码可能会停止与 Gmail 一起工作。解决方案是 启用两步验证 并 生成应用程序密码,然后您可以使用生成的密码使用 nodemailer 发送电子邮件。为此,您需要执行以下操作:
示例用法
旧答案(2022-05-02 之前)
我认为首先您需要 允许安全性较低的应用程序访问您 Google 帐户中的帐户 设置 - 默认情况下此设置是 关闭的,您只需将其 打开 即可。您还需要确保禁用该帐户的 2 因素身份验证。您可以 在此处 查看如何禁用它。
然后我使用以下脚本从 gmail 帐户发送电子邮件,也使用 yahoo 和 hotmail 帐户进行了测试。
如果你把前面的代码放在
send-email.js
例如,打开终端并写:您应该在控制台中看到 - 成功,如果电子邮件已成功发送或
nodemailer
返回错误消息不要忘记先进行设置 - Allow less secure apps to access account 。
我希望这段代码对你有用。祝你好运!