Я пытаюсь отправить электронное письмо нескольким получателям (около 3.000). Все электронные письма хранятся в моей БД (Mongo). Таким образом, я делаю запрос, возвращать все адреса электронной почты, и я использую асинхра отправить все письма, как:Отправить многопользовательские письма с помощью nodemailer и gmail
function _sendEmail(params, callback) {
async.each(params.email, function(user, cb) {
const mailOptions = {
from: sender
to: user,
subject: Subject,
text: 'Hello Word',
};
app.transporter.sendMail(mailOptions, function(err, response) {
if(err) console.log(err);
else console.log(response);
cb();
});
}, callback);
}
Я создаю мой nodemailer транспорти в моем app.js,, например, так:
const transporter = nodemailer.createTransport(smtpTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: senderMail,
pass: senderMailPassword
}
}));
когда я пытаюсь отправить это только 10 писем, она работает просто отлично, но когда я пытаюсь отправить все письма в моей БД, я получаю эту ошибку кучу раз:
{ [Error: Data command failed: 421 4.7.0 Temporary System Problem. Try again later (WS). g32sm7412411qtd.28 - gsmtp]
code: 'EENVELOPE',
response: '421 4.7.0 Temporary System Problem. Try again later (WS). g32sm7412411qtd.28 - gsmtp',
responseCode: 421,
command: 'DATA' }
Я что-то упускаю? Должен ли я установить что-то, чтобы отправлять много писем os в течение небольшого периода времени? Для этого я использую аккаунт gmail!
Заранее благодарен!
Спасибо, Стивен! Но что вы имеете в виду «отправить по почте»? – PauloIke
Вы можете обработать отправку нескольких сообщений по сеансу, но я не думаю, что gmail обрабатывает эту вещь. – Mech45
, тем не менее, будьте осторожны с максимальным количеством одновременных сеансов и лимитом сообщения, которое вы можете отправить по минуте/часам. – Mech45