Nodemailer не работает с локальным smtp-сервером

Я настроил локальный smtp-сервер на своей машине linux. Следующая команда работает и успешно получила почту от test@.

echo “THIS IS A TEST EMAIL” | mail -s "This is subject" xxxx@gmail.com

Тогда как мне нужно отправить почту, используя nodemailer, который я настроил как показано ниже,

    const transporter = nodemailer.createTransport({
        host:"smtp.<ourserver>.com",
        secure:false
    });
    const info = await transporter.sendMail({
        from: 'test@<machine-name>', // sender address
        to: 'xxxx@gmail.com', // list of receivers
        subject: "Hello", // Subject line
        html: "<i>Hello world</i>" // html body
    });

Но я получаю следующую ошибку,

enter image description here

Есть идеи, почему я столкнулся с этой проблемой?

Я видел похожие вопросы на quora, но ни один из них не решил мою проблему.

С emailjs он работает со следующим конфигом,

  const { SMTPClient } = require('emailjs');
  const client = new SMTPClient({
       host: 'smtp.<ourserver>.com',
       ssl: false,
       tls: false
  });
  client.send(
    {
       text: 'Hello',
       from: 'test@<machine-name>',
       to: 'xxx@gmail.com',
       subject: 'Hello',
    },
    (err, message) => {
         //
    }
 );

Как я могу заставить его работать с nodemailer?

0
задан 22 September 2020 в 11:07

1 ответ

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

const auth = {
user: "email@email.com",
pass: "password"
};

const transporter = require('nodemailer').createTransport({
host: "smtp.<ourserver>.com",
port: 587,
auth
});


transporter.verify(function (error, _) {
    console.error(error);
}

const data = {
        to: "<to@email.com>,
        from: 'User Name <' + auth.user + '>',
        date: "<date>",
        subject: "Subject"
    };
transporter.sendMail(data, (response) => {});
0
ответ дан 10 November 2020 в 00:57

Другие вопросы по тегам:

Похожие вопросы: