2015-06-08 100 views
2

我正在尝试用nodemailer发送电子邮件。我已经设法从其他主机发送它,但现在我想从另一个地址发送电子邮件。这些都是nodemailer的版本我使用(从我的package.json):如何解决nodemailer中的CERT_UNTRUSTED错误

"nodemailer": "1.3.4", 
"nodemailer-smtp-transport": "1.0.2", 

这是我对自己的网络邮件的信息:

RoundCube Mail Client Configuration

我成立nodemailer这样的:

var transport = nodemailer.createTransport(smtpTransport({ 
     host: 'securemail.linevast.de', 
     port: 465, 
     secure: true, 
     auth: { 
      user: '[email protected]', // this is my login name 
      pass: 'mypassword' 
     }, 
     maxConnections: 5, 
     maxMessages: 10 
    })); 

而当我尝试发送电子邮件时,我收到以下错误消息。

[Error: certificate not trusted] code: 'CERT_UNTRUSTED'

websiteGeoTrust的公司验证,所以我认为这是非常值得信赖的。有没有办法让nodemailer信任证书或强制它发送电子邮件,即使它不信任它?

谢谢你的帮助!

+0

你确定你有同样的证书在邮件服务器instaled和网络断绝?看起来像是......您的邮件服务器正在使用默认的未签名证书。 – jmingov

+0

我没有安装这些服务器,只是在浏览器中看到Web服务器具有GeoTrust证书。客户服务表示'securemail.linevast.de'使用可信证书。有没有办法让nodemailer忽略这个警告? –

回答

4

是的,您可以告诉nodemailer不检查证书信任。

这是选项:

tls: {rejectUnauthorized: false} 

使用初始的传输对象:

var transporter = nodemailer.createTransport(smtpTransport('SMTP',{ 
     host: 'mail.mailserver.com', 
     port: 587, 
     auth: { 
      user: '[email protected]', 
      pass: 'passwd' 
     },    
     authMethod:'NTLM', 
     secure:false, 
     // here it goes 
     tls: {rejectUnauthorized: false}, 
     debug:true 
    }) 
); 
+0

无论如何,因为你有一个很好的支付证书可用,请尝试在邮件服务器上安装它,因为它更安全(不是证书本身,但现在你信任任何证书)。 – jmingov

+0

谢谢你的帮助!现在它可以工作。我仍然会试图找出关于证书的问题,但这是一个工作的临时解决方案:) –

+0

很高兴工作。干杯 – jmingov

相关问题