Модуль nodemailer не будет работать на стороне клиента, и его использование там небезопасно.
Если это на заднем плане, ошибка в основном говорит о проблемах с разрешением имени хоста.
Так что ваш код должен выглядеть следующим образом, если вы используете gmail:
//Create transport + auth
let transporter = mailer.createTransport({
host: "smtp.gmail.com",
port: 587,
auth: {
user: creds.userName,
pass: creds.password
}
});
Не забудьте установить пароль приложения для nodemailer вместо использования своего реального пароля.
Это рабочий код, который захватил наш мой проект.
Может быть, он может служить некоторой ссылкой.
'use strict'
//Dependencies
const mailer = require('nodemailer');
//Credentials
const creds = require('./creds/gmail');
//Mailing Function
const mailFunc = (subject, recipient, msg, cbMail) => {
//Create transport + auth
let transporter = mailer.createTransport({
host: "smtp.gmail.com",
port: 587,
auth: {
user: creds.userName,
pass: creds.password
}
});
//Create the message object
let message = {
from: 'example@gmail.com',
to: recipient,
subject: subject,
text: msg,
// html: "<p>HTML version of the message</p>"
};
//Send mail
transporter.sendMail(message)
.then(res => {
cbMail(res.response);
})
.catch(err => {
cbMail(err);
})
}
//Export the module
module.exports = { mailFunc }