nodemailer无法正常运行报getaddrinfo ENOTFOUND错误求助
报错根因
getaddrinfo ENOTFOUND属于DNS解析失败错误,触发原因是SMTP服务器域名拼写错误,报错中拉取的地址为smpt.mydomian.com,存在两处明显拼写问题:
- SMTP协议前缀拼写颠倒,正确应为
smtp,报错中为smpt - 域名拼写错误,正确应为
mydomain.com,报错中为mydomian.com
修复方案
- 先核对你实际使用的SMTP服务器的正确地址,替换
createTransport配置中的host字段值 - 若确认配置里的
host拼写正确仍报该错,检查是否有其他代码逻辑、环境变量覆盖了transport的host配置 - 修复后可在部署服务的机器上执行
nslookup 你的正确SMTP域名,确认服务器本身的DNS可以正常解析该地址 - 额外注意你代码里的收件人地址
abc@domail.com也存在拼写错误,domail应为domain,否则后续发信仍会失败
修正后参考代码
let transporter = nodemailer.createTransport({ host: "smtp.mydomain.com", // 此处替换为你实际的正确SMTP地址 port: 465, secure: true, auth: { user: "abc@mydomain.com", pass: "password", }, }); let mailOptions = { from: email, to: "abc@domain.com", // 修正收件人地址拼写 subject: `New Lead ${fullName}`, text: newMail, }; transporter.sendMail(mailOptions, (err, data) => { if (err) { console.log("there is an error " + err); } else { console.log("mail sent successfully"); } });
内容的提问来源于stack exchange,提问作者user15054235
相关产品推荐
相关产品推荐

