【发布时间】:2018-10-07 17:50:36
【问题描述】:
我的问题是在 Node.js 应用程序上使用 Exchange 2010 电子邮件服务器正确配置 Nodemailer。
因为我在使用 Outlook365 等知名服务时没有遇到身份验证问题,所以我假设问题出在主机和/或安全性和端口设置上 - 我认为我没有连接首先。
下面是我的配置 -
let transporter = nodemailer.createTransport({
host: 'https://email.<COMPANYNAME>.com/owa',
port: '587',
secure: false,
auth: {
user: <USERNAME>,
pass: <PASSWORD>
},
tls: {
rejectUnauthorized: false
}
});
在我的 Node 应用程序上出现错误 -
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('Send error: ', error);
res.sendStatus(500);
} else {
console.log('Email sent!');
res.sendStatus(200);
}
});
这是来自 AWS EC2 日志的错误 -
getaddrinfo ENOTFOUND https://email.<COMPANYNAME>.com/owa https://email.<COMPANYNAME>.com/owa:587
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
code: 'ECONNECTION',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'https://email.<COMPANYNAME>.com/owa',
host: 'https://email.<COMPANYNAME>.com/owa',
port: '587',
command: 'CONN'
Nodemailer 文档指定主机“是要连接的主机名或 IP 地址(默认为‘localhost’)”
当我尝试更多传统的 mail.COMPANYNAME.com 时,我的请求超时。使用该地址显然会命中我的服务器并在我指定的验证/发送步骤中返回错误。
同样,问题似乎与我在 Exchange 2010 中的传输器配置有关。非常感谢任何帮助!
【问题讨论】:
-
欢迎来到 Stack Overflow! SO 的 markdown 语法不需要代码栅栏的反引号(而且,它甚至不适用于它们)。您需要做的就是缩进它们,它们现在被视为代码并按原样显示。
-
谢谢!我会编辑帖子。
标签: node.js nodemailer exchange-server-2010