无法使用Nodemailer连接到outlook.com SMTP

我正在创build这样的传输对象。

var transport = nodemailer.createTransport("SMTP", { host: "smtp-mail.outlook.com", // hostname secureConnection: false, // use SSL port: 587, // port for secure SMTP auth: { user: "user@outlook.com", pass: "password" } }); 

这是我收到的错误,当我试图发送邮件。

[错误:139668100495168:错误:1408F10B:SSL例程:SSL3_GET_RECORD:错误的版本号:../ deps / openssl / openssl / ssl / s3_pkt.c:337:]

当我试图设置ignoreTLS为true。 这是我得到的

{[AuthError:无效login – 530 5.7.0必须首先发出STARTTLS命令]名称:'AuthError',数据:'530 5.7.0必须首先发出STARTTLS命令'}

难道我做错了什么? 请帮忙。

       

网上收集的解决方案 "无法使用Nodemailer连接到outlook.com SMTP"

我遇到同样的问题,直到我偶然发现https://github.com/andris9/Nodemailer/issues/165

尝试添加tls cipher选项以使用SSLv3。

 var transport = nodemailer.createTransport("SMTP", { host: "smtp-mail.outlook.com", // hostname secureConnection: false, // TLS requires secureConnection to be false port: 587, // port for secure SMTP auth: { user: "user@outlook.com", pass: "password" }, tls: { ciphers:'SSLv3' } }); 

或者,对于hotmail / live / outlook,您可以简单地使用

 var transport = nodemailer.createTransport("SMTP", { service: "hotmail", auth: { user: "user@outlook.com", pass: "password" } }); 

如果您使用的是Nodemailer 1.x或更高版本,则可以使用:

 var transporter = nodemailer.createTransport('smtp://username%40outlook.com:password@smtp-mail.outlook.com'); 

tls:{密码:'SSLv3'} +1工作

对于第一个agr(“SMTP”,不支持以后的版本,必须降级nodemailler