NodeMailer:getaddrinfo 错误

问题描述 投票:0回答:2

寻找对我遇到的错误的一些见解。

在 Transporter.sendmail(func(err, info){}) 上, err 变量返回以下内容:

{ [Error: getaddrinfo ENOTFOUND smtp.gmail.com]
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'smtp.gmail.com' }

我在他们的网站或github上没有看到nodemailer的任何错误文档,并且我在Google搜索上没有找到任何有用的东西。我看到的最接近的是this SO post。我试图通过 cron 作业每周发送大约 50 封电子邮件。

我已经尝试过使用和不使用nodemailer-smtp-pool包,我的传输器目前看起来像这样:

var transporter = nodemailer.createTransport(smtpPool({
  service: 'gmail',
  auth: {
    user: '[email protected]',
    pass: 'xxx'
  },
  maxConnections: 5,
  maxMessages: 200
}));

我还没有使用 XOATH,因为我觉得我不需要这样做。我已经删除了我正在使用的 gmail 帐户的 DisplayUnlockCaptcha,但我认为这没有关系。无论如何,我在这个应用程序中使用了 MEAN 堆栈。

当nodemailer进行getaddrinfo调用时,似乎没有找到'smtp.gmail.com',但我不明白为什么。

任何见解都值得赞赏

编辑:

来自nodemailer的开发者:

ENOTFOUND 表示应用程序无法解析 DNS A 记录 smtp.gmail.com。可能是你的 DNS 服务器有问题。这是 由 Node 而不是 Nodemailer 处理,Nodemailer 无法处理 如果主机名未解析,则执行此操作。如果这种情况随机发生,那么你 可以编辑您的应用程序以便稍后重试。

而且 Nodemailer 似乎不支持代理,或者从未计划支持。对我来说似乎是一条死胡同。

node.js email smtp nodemailer
2个回答
0
投票

我的nodemailer设置也遇到了同样的错误,我通过更改gmail密码以不包含任何特殊字符来修复它。


0
投票
var transporter = nodemailer.createTransport(smtpPool({
  service: 'gmail',
  secure: false, // true for 465, false for other ports
  auth: {
    user: '[email protected]',
    pass: 'xxx'
  },
  maxConnections: 5,
  maxMessages: 200
}));

试试这个,应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.