Jeevan Jeevan - 4 months ago 72
Node.js Question

Not able to connect to outlook.com SMTP using Nodemailer

I am creating the transport object like this.

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"
}
});


This is the error which I am getting, when I try to send the mail.


[Error: 139668100495168:error:1408F10B:SSL
routines:SSL3_GET_RECORD:wrong version
number:../deps/openssl/openssl/ssl/s3_pkt.c:337: ]


When I tried setting ignoreTLS as true. This is what I am getting


{ [AuthError: Invalid login - 530 5.7.0 Must issue a STARTTLS command
first] name: 'AuthError', data: '530 5.7.0 Must issue a STARTTLS
command first' }


Am I doing something wrong? Please help.

Answer

I was having the same issue until I stumbled upon https://github.com/andris9/Nodemailer/issues/165

Try adding the tls cipher option to use 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'
    }
});

Alternatively, for hotmail/live/outlook you can simply use

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