Nodemailer与私有主机有关

时间:2017-08-24 08:00:19

标签: node.js smtp nodemailer starttls

我正在使用nodemailer与一些私人主机发送电子邮件。这是我的代码:

var transporter = nodemailer.createTransport({
 host: "smtp.abc.net",
 secure: false,
 port: 587,
 auth: {
    user: "example@example.com",
    pass: "password"
 }
});

它正在获取证书问题所以我尝试添加证书但又出现了错误 - '必须先发出STARTTLS命令'

我添加了一个选项 -

tls: {
    rejectUnauthorized: false
}

它有效。但我不确定将rejectUnauthorized设置为false是一种好方法。 这样做有什么影响?有没有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

你得到的错误与#34; 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
    }
}); 

答案 1 :(得分: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: "user@email.com",
    pass: "password"
},
tls: {
  secureProtocol: "TLSv1_2_method",
  rejectUnauthorized: false
}});