конфигурация nodemailer 2.x для прямой отправки Office 365

Я использую nodemailer v2.4.2 с node.js v4.4.7, и я хочу отправлять электронные письма со своего сервера через мой почтовый SMTP-сервер Office 365. Я использую smtpTransport v2.5.0 с такой конфигурацией:

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

Я пробовал указать authMethod из LOGIN и PLAIN, но ни то, ни другое не имеет значения. Когда я пытаюсь отправить электронное письмо, я получаю сообщение об ошибке:

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

Кто-нибудь знает, какой тип авторизации ожидается в Office 365 и нужно ли указывать какие-либо другие параметры в настройке nodemailer?


person David Williamson    schedule 04.07.2016    source источник
comment
плз, отметьте правильный ответ, если вы решили свой вопрос !!   -  person Alejandro Teixeira Muñoz    schedule 10.05.2017


Ответы (4)


Это работает для меня:

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

Вы можете добавить:

    requireTLS: true
person Julian Pinn    schedule 24.09.2016
comment
Это работает, и объяснения были очень полезны. Благодарность - person Lazarus Rising; 04.07.2018
comment
secure:false и добавление requireTLS: true у меня работает, спасибо - person vimal prakash; 07.07.2020

Очень поздний ответ, но если вы используете общий почтовый ящик из Office365, вы не сможете пройти проверку подлинности через SMTP. Я тоже получил эту ошибку, а потом понял это.

См. Может ли общий почтовый ящик Office365 использовать SMTP? для получения информации об этом.

person Vignesh T.V.    schedule 14.05.2018

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

Вы можете попробовать с этой конфигурацией

person John Bedoya    schedule 01.09.2020

В моем сценарии я должен был убедиться, что поле электронной почты From использовало тот же адрес электронной почты, который я использовал для входа в почтовый ящик - в объекте options по адресу: auth.user.

Таким образом, при условии, что я использовал данные TLS для STARTTLS, например. auth.user.secure: false, requireTLS: true и tls.ciphers: 'SSLv3', мне удалось отправить электронное письмо с помощью Nodemailer.

person TPPZ    schedule 19.05.2021