NodeMailer:getaddrinfo错误

Posted

技术标签:

【中文标题】NodeMailer:getaddrinfo错误【英文标题】:NodeMailer : getaddrinfo Error 【发布时间】:2015-05-30 17:26:30 【问题描述】:

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

在 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: 'xxx@gmail.com',
    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 支持代理,或者从未计划支持。对我来说似乎是一个死胡同。

【问题讨论】:

你试过使用'secure: true'吗?使用主机:smtp.gmail.com 和端口:465 而不是服务选项怎么样? 我使用 465 并专门允许和解锁 gmail 安全设置中的应用程序访问。 【参考方案1】:

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

【讨论】:

以上是关于NodeMailer:getaddrinfo错误的主要内容,如果未能解决你的问题,请参考以下文章

Nodemailer /发送给出404错误

getaddrinfo() 上的段错误

为啥nodemailer在这里给出错误|| UnhandledPromiseRejectionWarning ||未定义收件人

带有 NodeMailer 的 Zoho 不工作错误代码:“EDNS”

使用 Nodemailer 从 Zohomail 发送邮件时出现连接超时错误

防病毒软件正在阻止 nodemailer - 错误:证书链中的自签名证书