node.jsssloutlooksmtpnodemailer

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.


Solution

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