2017-08-24 82 views
0

我正在使用nodemailer與一些私人主機發送電子郵件。這裏是我的代碼:Nodemailer問題與私人主機

var transporter = nodemailer.createTransport({ 
host: "smtp.abc.net", 
secure: false, 
port: 587, 
auth: { 
    user: "[email protected]", 
    pass: "password" 
} 
}); 

這是越來越證書問題,所以我嘗試添加證書,但再次出現了錯誤 - 「必須首先發出STARTTLS命令」

我增加了一個選項 -

tls: { 
    rejectUnauthorized: false 
} 

它工作。但我不確定將拒絕授權設置爲false是否是一種好方法。 這樣做的影響是什麼?有沒有其他方法可以做到這一點?

回答

0

您是否遇到與「secure:true」選項相同的錯誤?

var transporter = nodemailer.createTransport({ 
    host: 'poczta.o2.pl', 
    port: 465, 
    secure: true, // secure:true for port 465, secure:false for port 587 
    auth: { 
     user: process.env.MAILING_USER, 
     pass: process.env.MAILING_USER_PASSWORD 
    } 
}); 
+0

是我得到了同樣的錯誤,將安全設置爲true – Abhilasha

0

我加4個選項:SSL,ignoreTLS,的RequireTLS,rejectUnauthorized。它的工作。似乎問題出在NoSSL上。我關閉SSL並添加了TLS。

var transporter = nodemailer.createTransport({ 
host: "example.com", 
secure: false, 
port: 587, 
ssl: false, 
ignoreTLS: false, 
requireTLS: true, 
auth: { 
    user: "[email protected]", 
    pass: "password" 
}, 
tls: { 
    secureProtocol: "TLSv1_2_method", 
    rejectUnauthorized: false 
}});