2017-01-12 15 views
0

Я пытаюсь отправить электронное письмо нескольким получателям (около 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!

Заранее благодарен!

ответ

0

Из Gmail: ошибка 421 Сервер SMTP: слишком много параллельных сессий

Вы можете обрабатывать ваш отправить иначе:

  • ждать, чтобы закрыть сессию между каждой отправкой

  • послать куча почты

Лучший способ - не превышать лимит в 10 сеансов за одно и то же время :)

+0

Спасибо, Стивен! Но что вы имеете в виду «отправить по почте»? – PauloIke

+0

Вы можете обработать отправку нескольких сообщений по сеансу, но я не думаю, что gmail обрабатывает эту вещь. – Mech45

+0

, тем не менее, будьте осторожны с максимальным количеством одновременных сеансов и лимитом сообщения, которое вы можете отправить по минуте/часам. – Mech45