【发布时间】:2020-09-24 01:42:05
【问题描述】:
我们使用Nodemailer 从我们的服务器自动发送电子邮件。我们正在使用 gmail 帐户发送电子邮件。它工作正常,直到昨天晚上。现在我们遇到了一些错误,例如
{ Error: queryA EREFUSED smtp.gmail.com at QueryReqWrap.onresolve [as oncomplete] (dns.js:206:19) errno: 'EREFUSED', code: 'EDNS', syscall: 'queryA', hostname: 'smtp.gmail.com', command: 'CONN' }
我也尝试使用其他一些 gmail 帐户,它返回相同的错误。这是我们使用的代码
var smtpTransport = nodemailer.createTransport({
service: 'gmail',
port: 465,
secure: true,
auth: {
user: 'xxx@gmail.com',
pass: 'xxxxxxxx'
}
});
即使我尝试过类似的代码
var smtpTransport = nodemailer.createTransport({
host: 'smtp.gmail.com',
auth: {
user: EmailPath["Email_UserName"],
pass: EmailPath["Email_Password"]
}
});
【问题讨论】:
-
通常不建议将 Gmail 用作此类用例的 SMTP 提供程序。 Nodemailer 建议不要这样做,因为谷歌“为每次登录尝试运行大量启发式算法,并阻止任何看起来可疑的内容以保护用户免受帐户劫持尝试。例如,如果您的服务器位于另一个地理位置,您可能会遇到麻烦 –在您的开发机器上一切正常,但消息在生产中被阻止。" (source)。
-
知道您在此处提供的上下文很可能 Gmail 现在正在阻止您的计算机;这可能是 Google 支持团队比其他任何人都更有可能解决的问题。
-
还有其他电子邮件服务提供商。例如,sendgrid.com 有一个免费层,他们做得很好。
标签: node.js mongodb nodemailer