我有一个网站,我会在一年之后恢复正常状态。我没有进行任何代码更改,我已经恢复了网站,除了网站/应用程序发送电子邮件之外,一切正常。
这是一个ubuntu node.js服务器。它托管在亚马逊上,我不得不创建另一个实例并重新命名dns等。过去工作的示例代码片段现在却没有:
var emailServer = email.server.connect({user:"<my gmail>",password:"<mypw>",host:"smtp.gmail.com",ssl:true});
emailServer.send({
text: "Your username is: " + userName + ".",
to: emailAddress,
subject: "Activate Your a2zCribbage Account",
attachment: [...]
}, function(err, message) { if (err) console.log(err); });
当我第一次尝试发送电子邮件时,我使用的gmail帐户收到了“禁止登录尝试”的消息。有人刚刚尝试登录到您的Google帐户&lt; account&gt;来自不符合现代安全标准的应用程序。
我按照Google的说法改变了安全性以允许应用,但仍然没有发送任何内容。
我错过了什么?我还可以尝试其他什么? ec2服务器不仅允许默认发送电子邮件吗?
答案 0 :(得分:2)
Gmail is not a platform for sending automated email.仅仅因为可以并不意味着它是为此而设计的。
AWS EC2 instances are also problematic for sending email;这些端口可能被阻止或throttled,这样做肯定会获得更高的垃圾邮件分数。
规范解决方案是使用AWS SES。 Here's sample code和here's the documentation。还有a simple third-party library。