Я настроил локальный 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
});
Но я получаю следующую ошибку,
Есть идеи, почему я столкнулся с этой проблемой?
Я видел похожие вопросы на 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
?
Вам нужно будет добавить код для прослушивания эха, затем:
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) => {});