2015-06-08 101 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

相關問題