Not able to connect to outlook.com SMTP using Nodemailer

39,598

Solution 1

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: "[email protected]",
        pass: "password"
    },
    tls: {
        ciphers:'SSLv3'
    }
});

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

var transport = nodemailer.createTransport("SMTP", {
    service: "hotmail",
    auth: {
        user: "[email protected]",
        pass: "password"
    }
});

Solution 2

let testAccount = await nodemailer.createTestAccount();
let transporter = nodemailer.createTransport({
  service: "Outlook365",
  host: "smtp.office365.com",
  port: "587",
  tls: {
    ciphers: "SSLv3",
    rejectUnauthorized: false,
  },
  auth: {
    user: "**********",
    pass: "*******",
  },
});
let info = await transporter.sendMail({
  from: "********", // sender address
  to: to, // list of receivers
  subject: subject, // Subject line
  html: html, // html body
});

You can use thing configuration for nodemailer with outlook account
Share:
39,598

Related videos on Youtube

Jeevan
Author by

Jeevan

Building the next-generation rules-driven customizable and configurable API Gateway. Previously worked on browser extensions for Chrome, Firefox, Safari and IE.

Updated on July 09, 2022

Comments

  • Jeevan
    Jeevan almost 2 years

    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: "[email protected]",
                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.

  • michalstanko
    michalstanko almost 9 years
    I think you forgot to remove the first argument, "SMTP", in your service:"hotmail" example.
  • TFischer
    TFischer about 5 years
    @michalstanko's comment is no longer valid. You no longer require SMTP as the first argument