Nodemailer и Godaddy, я пробовал все решения безрезультатно - PullRequest
0 голосов
/ 19 июня 2020

Я купил домен и электронную почту с GoDaddy с Office 365 Basi c в комплекте с ним.

Через несколько дней я пытаюсь отправить только электронное письмо с помощью nodemailer из моего приложения node, но безуспешно, потому что я всегда получаю 535 Authentication Failed from user@domain.com.

Я сканировал StackOverflow несколько дней пробуя каждое решение, это все настройки, которые я пытался передать в nodemailer.createTransport:

const mailerConfig = 
{
    //First set of parameters tried
    service: 'Godaddy',
    host: "smtp.office365.com",  
    secureConnection: true,
    port: 587,

    auth: 
    {
        user: "user@domain.com",
        pass: "password" 
    }


    //Second set of parameters tried
    host: "smtp.office365.com",
    secureConnection: false,
    port: "587",
    auth:
    {
        user : "user@domain.com",
        pass : "password"
    },
    tls:
    {
        ciphers:'SSLv3'
    }


    //Third set of parameters tried
    service: "outlook",
    auth: 
    {
        user: 'user@domain.com',
        pass: 'password'
    }
}

Ни одна из этих трех настроек не сработала, у кого-то есть идеи? Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 августа 2020

Вам необходимо разрешить весь доступ введите описание изображения здесь

и не забудьте отключить подтверждение sms / звонка для входа

, кстати, этот код я использовал в облачной функции firebase / nodemailer

  cors(req, res, async () => {
    var transporter = nodemailer.createTransport({
      host: "smtp.office365.com",
      port: 587, // port for secure SMTP
      auth: {
        user: "user@domain.com",
        pass: "password",
      },
      tls: {
        ciphers: 'SSLv3'
      }

    });

    if (req.method === 'POST') {
      var mailOptions = {
        from:req.body.from,
        to: req.body.email, // list of receivers
        subject: req.body.subject, // Subject line
        text: req.body.text,
      };
      return transporter.sendMail(mailOptions).then(() => {
        res.status(200).send('Email has been sent to mr/ms : ' + req.body.email); return ("mail sent")
      });
    }
  })
0 голосов
/ 09 июля 2020
  1. Вы должны включить SMTP-вход для почтового ящика O365 или пользователя в настройках администратора.

  2. Если у пользователя включен многофакторный режим, вам необходимо использовать " пароль приложения ", обычный пароль не будет работать, если включен MFA.

https://docs.microsoft.com/en-us/azure/active-directory/user-help/multi-factor-authentication-end-user-app-passwords

Вам необходимо отключить параметры безопасности по умолчанию или настроить политики условного доступа.

https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults

Кроме того, вы можете отладить проблему, используя журналы входа в azure учетной записи пользователя.

введите описание изображения здесь

...