我的问题是在Node.js应用程序上使用Exchange 2010电子邮件服务器正确配置Nodemailer。
由于我没有收到身份验证问题(我在使用Outlook365这样的知名服务时这样做),我假设问题出在主机和/或安全和端口设置上 - 我不会&# 39;我想我先把它连接起来。
我的配置如下 -
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文档指定主机&#34;是要连接的主机名或IP地址(默认为'localhost')&#34;
当我尝试更多常规mail.COMPANYNAME.com时,我的请求超时。使用该地址会清楚地点击我的服务器,并在我指定的验证/发送步骤中返回错误。
同样,问题似乎与我使用Exchange 2010的传输配置有关。非常感谢任何帮助!
答案 0 :(得分:0)
我也在搜索这个问题。但是我自己找到了解决方案。
const transporter = nodemailer.createTransport({
host: 'smtp.office365.com',
port: 587,
secure: false,
auth: {
user: 'USER_NAME',
pass: 'PASSWORD'
}
});
我使用此配置通过Exchange或Office 365服务器使用节点邮件程序发送电子邮件。