如何使用 nodemailer 和 roundcube 发送电子邮件

问题描述

我正在尝试通过 nodemailer 库发送电子邮件。我相信问题是配置主机的时间。我尝试使用 gmail 并且它工作得很好,但是当我使用我自己的电子邮件提供商时,它会在下面返回此错误

用户身份验证失败错误:getaddrinfo ENOTFOUND http://myserver.com"

module.exports = {
    host: 'http://myserver.com',port: '587',user: 'email@myserver.com',pass: 'mypassword'
}

解决方法

您需要从主机变量中删除协议 http://。您尝试向 http://myserver.com 而不是 myserver.com 发出 dns 请求。

此外,邮件服务不使用 http 协议,而是使用 smtpsmtps 用于安全连接)。

另一种方式:可以使用单行连接字符串

let transporter = nodemailer.createTransport(
`smtp://email:mypassword@myserver.com:587`);
,

您列出的服务器不是有效域 - 即如果我运行 DNS 查找,它不会解析为任何内容。

这向我表明您正在尝试连接到本地网络上的邮件服务器,并且已经更改了路由器中的 DNS 或您机器的主机文件以将本地 IP 映射到命名域。如果是这种情况,我建议您获取本地邮件服务器的实际 IP 地址并改用它,看看这是否有助于连接。