我正在使用我的gmail帐户发送一个smtp警报消息到我的用户的电子邮件。例如,注册或帐户被阻止等。我正在使用一个节点邮件程序,是电子邮件发送成功,没有一个单一的失败。下面是我的代码。
var nodemailer = require("nodemailer");
// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "gmail.user@gmail.com",
pass: "userpass"
}
});
// setup e-mail data with unicode symbols
var mailOptions = {
from: "Fred Foo ✔ <foo@blurdybloop.com>", // sender address
to: "bar@blurdybloop.com, baz@blurdybloop.com", // list of receivers
subject: "Hello ✔", // Subject line
text: "Hello world ✔", // plaintext body
html: "<b>Hello world ✔</b>" // html body
}
// send mail with defined transport object
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
// if you don't want to use this transport object anymore, uncomment following line
//smtpTransport.close(); // shut down the connection pool, no more messages
});
就在昨天,注册了我的@mydomain帐户的google for business帐户,然后用我新的google for business电子邮件替换了gmail,
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "user@mydomain.com",
pass: "userpass"
}
});
问题是,它不发送新帐户的电子邮件。而是在我的控制台上返回标题错误。我试图改变我的新帐户的安全性,以允许从谷歌控制台不太安全的应用程序都无济于事。请这个错误意味着什么?也考虑到用户名和密码为我的电子邮件使用,这是最好的选择?请如何最好地实现?任何帮助将不胜感激。
7条答案
按热度按时间6vl6ewon1#
谢谢你们的时间,伙计们。下面是对我有效的方法。
改为
我在文档https://github.com/nodemailer/nodemailer上找到了上面的例子。我怀疑如果你的密码包含
@
符号,考虑到u和smtps链接,这种情况可能会发生在你身上。因此,建议将它拆分成一个对象,而不使用@符号干扰你的smtps URL。这是我的猜测。尽管如此,上面的解决方案对我来说是有效的。另外,不要“t忘记允许安全性较低的应用程序从您的谷歌控制台。ssm49v7z2#
我使用的是
secure: false
,在生产中遇到了同样的问题,下面是适合我的解决方案:希望这能对人有所帮助。
cfh9epnr3#
为Bluehost添加一个配置,供任何使用它的人使用。
可以使用
verify()
方法验证这些选项。如果遇到此错误,请确保主机属性设置正确。
我花了20分钟处理这个错误,发现host属性未定义(我使用了一个环境变量将其移植到config中)。
lsmepo6l4#
我也曾犯过同样的错误,这对我很有效
w6mmgewl5#
多亏了这个方法,我才算解决了这个问题。
6fe3ivhb6#
在我的情况下,代理是错误,所以请查看代理告别设置
omvjsjqw7#
如果没有其他工作,这可能是因为您的服务器提供商没有为您启用端口465.我使用A2主机,他们没有启用端口465默认情况下,与技术支持后,然后只有我可以发送电子邮件通过使用谷歌工作区电子邮件.