Ошибка отправки электронной почты с помощью nodemailer через SMTP Office365 (шаблон MEANjs)

Я пытаюсь использовать SMTP Office365 для отправки электронной почты с помощью Nodemailer (в шаблоне MEANjs), но получаю следующую ошибку:

[Error: 140735277183760:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:795:]

Я использую следующие параметры Nodemailer:

{ 
    host: 'smtp.office365.com',
    port: '587',
    auth: { user: 'xxxx', pass: 'xxxx' },
    secure: 'false',
    tls: { ciphers: 'SSLv3' }
}

Удаление поля tls не имеет значения. Что мне не хватает?


person Prasad Silva    schedule 23.04.2015    source источник


Ответы (4)


Решение было простым. Поле "secure" должно быть "secureConnection". Эшафот MEANjs, сгенерировавший конфигурации, создал параметры почтовой программы с полем «secure». Остальные варианты подойдут. Для всех, кому нужен рабочий блок параметров рассылки SMTP-узла Office365, должно работать следующее:

{ 
    host: 'smtp.office365.com',
    port: '587',
    auth: { user: 'xxxx', pass: 'xxxx' },
    secureConnection: false,
    tls: { ciphers: 'SSLv3' }
}
person Prasad Silva    schedule 23.04.2015
comment
Когда я попытался использовать предоставленные вами опции, он не сработал и выдал ошибку тайм-аута. Мне пришлось удалить secureConnection opt, чтобы он заработал. Спасибо! - person João Cerqueira; 14.06.2016
comment
большое спасибо! в моем случае это сработало с такой настройкой: "secure": false, "tls": { "ciphers": "SSLv3" } - person rdenisi; 06.09.2017

Я знаю, что это устарело, но если кто-нибудь найдет это в 2019 году, вы можете просто добавить service: "Outlook365"

и вам не нужно будет указывать параметры подключения.

Документы по Node Mailer

let transporter = nodemailer.createTransport({
    service: "Outlook365",
    auth: {
      user: '[email protected]',
      pass: 'FROMUSERPASS'
    },    
  })

  let info = transporter.sendMail({
    from: '[email protected]',
    to: '[email protected]',
    subject: 'Test',
    text: 'hello world',
    html: '<h1>TEST</h1>'
  })
person Alancode    schedule 27.04.2019

Эта документация по nodemailer https://nodemailer.com/2-0-0-beta/setup-smtp/ действительно указывает options.secure, а не options.secureConnection. В примере также предполагается, что options.secure ожидает логическое значение true или false, а не строковое значение 'true' или 'false'. Удаление '' из-под 'false' работает для меня.

person Julian Pinn    schedule 24.09.2016
comment
Я новичок в stackoverflow. Мне интересно, почему голосование против верного ответа. Все, что Саймон Х. сделал, это поместил серые рамки вокруг текста. Сурово, когда я хочу помогать людям. - person Julian Pinn; 01.10.2016

Моя проблема заключалась в том, что имя пользователя и пароль были написаны правильно, но я не вошел в учетную запись после создания. Итак, я использовал почтовую программу (Thunderbird) для входа в систему один раз, и мне пришлось изменить свой пароль, и тогда у меня был доступ через Nodemailer.

person Mare Seestern    schedule 29.07.2020