网络解决方案通过nodemailer配置SMTP邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络解决方案通过nodemailer配置SMTP邮件相关的知识,希望对你有一定的参考价值。
当我使用以下邮件配置时:
options = {
host: 'smtp.XXXX.com',
port: 2525,
secure: false,
ignoreTLS: true,
authMethods: ['PLAIN', 'LOGIN', 'XOAUTH2'],
auth: {
user: 'no_reply@XXXX.com',
pass: 'XXXXX'
},
它返回一个错误,即
当我使用以下配置时:
options = {
host: 'smtp.XXXX.com',
port: 465,
secure: true,
ignoreTLS: true,
authMethods: ['PLAIN', 'LOGIN', 'XOAUTH2'],
auth: {
user: 'no_reply@XXXX.com',
pass: 'XXXXX'
},
};
它给出错误:ECONNREFUSED错误代码ECONNECTION我不知道我应该使用哪种端口和配置用于网络解决方案SMTP。
如果您使用的是NodeJS v0.9.2或更高版本,那么您会发现Node正在对TLS和HTTPS进行默认证书验证。
这是release note:
tls,https:默认验证服务器证书(Ben Noordhuis)
最有可能这是您遇到的问题的主要原因。
只需在拨打电话前添加此行即可避免此问题:
rejectUnauthorized: false
但这可能会带来严重的安全隐患。即使数据是加密的,由于此绕过验证规则,中间人实际上可以窃取您的数据。您要发送的数据可能不会被转移到原始收件人服务器,而是可能会转移到黑客的服务器。
由于上述原因,这是一个快速修复,但不是推荐的修复。
理想情况下,您应通过确保证书由受信任的CA签名来验证收件人服务器。
您可能需要使用smtp提供程序进一步调试,以了解验证中的差距。每个证书都有一个“主题”,主题有一个“通用名称”。并且可以有多个“subjectAltNames”与之相关联。在验证期间,Node实际检查端点并尝试将其与Common Name或其中一个subjectAltNames匹配。如果存在不匹配,则会像以前一样抛出错误:Hostname / ip与证书的altnames不匹配
最有可能的是,PORT不是问题所在。证书验证是问题所在。
希望这能解决问题。
以上是关于网络解决方案通过nodemailer配置SMTP邮件的主要内容,如果未能解决你的问题,请参考以下文章
nodemailer 失败,连接被拒绝,使用已知良好的 SMTP 服务器