nodemailer 2.x configuration for Office 365 direct send

21,765

Solution 1

This works for me:

    var transporter = nodemailer.createTransport({
        host: 'smtp.office365.com', // Office 365 server
        port: 587,     // secure SMTP
        secure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely
        auth: {
            user: username,
            pass: password
        },
        tls: {
            ciphers: 'SSLv3'
        }
    });

You may like to add:

    requireTLS: true

Solution 2

var transporter = nodemailer.createTransport({
                  host: "smtpout.secureserver.net",
                  port: 587,
                  secureConnection: false,
                  secure: false,
                  requireTLS: true,
                  auth: {
                    user: emailUsr,
                    pass: emailPass
                  },
                  tls: {
                    rejectUnauthorized: false
                  }
                });

You can try with this configuration

Solution 3

A very late answer but if you are using a shared mailbox from Office365, you won't be able to authenticate via SMTP. I also got this error and then realized this.

Refer Can Office365 shared mailbox use SMTP? for information on this.

Share:
21,765
David Williamson
Author by

David Williamson

Updated on July 09, 2022

Comments

  • David Williamson
    David Williamson almost 2 years

    I'm using nodemailer v2.4.2 with node.js v4.4.7 and I want to send emails from my server via my Office 365 SMTP mail server. I'm using the smtpTransport v2.5.0 with this configuration:

    var transporter = nodemailer.createTransport(smtpTransport({
      host: 'smtp.office365.com',
      port: 25, // have tried 465
      secureConnection: secure,
      auth: {
        user: username,
        pass: password
      },
      tls: {
        rejectUnauthorized: false // don't verify certificates
      },
      ignoreTLS: false // don't turn off STARTTLS support
    }));
    

    I've tried specifying an authMethod of LOGIN and PLAIN but neither make any difference. When I try and send an email I get an error:

    [Error: Invalid login: 504 5.7.4 Unrecognized authentication type]
    code: 'EAUTH',
    response: '504 5.7.4 Unrecognized authentication type',
    responseCode: 504
    

    Does anyone have any idea on what authorization type is expected by Office 365 and whether I need to specify any different settings in the nodemailer setup?

  • Lazarus Rising
    Lazarus Rising almost 6 years
    This works, and the explanations were very helpful. thanks
  • vimal prakash
    vimal prakash almost 4 years
    secure:false and adding requireTLS: true works for me, thankyou
  • vishal sharma
    vishal sharma over 2 years
    You can use the office 365/outlook configuration with node-mailer to send mail using outlook account