J'essaye d'envoyer un email à plusieurs destinataires (environ 3.000). Tous les emails sont stockés dans ma base de données (Mongo). Je fais donc une requête qui renvoie toutes les adresses e-mail, et j'utilise async d'envoyer tous les e-mails, comme:Envoyer des emails multipe en utilisant nodemailer et 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);
}
Je crée mon nodemailer dans mes app.js Transporte, comme si:
const transporter = nodemailer.createTransport(smtpTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: senderMail,
pass: senderMailPassword
}
}));
lorsque je tente d'envoyer à seulement 10 mails, il fonctionne très bien, mais lorsque je tente d'envoyer à tous les e-mails dans mon DB, je reçois cette erreur un tas de fois:
{ [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' }
Ai-je oublié quelque chose? Dois-je configurer quelque chose pour pouvoir envoyer beaucoup de courriels dans une petite période de temps? J'utilise un compte Gmail pour le faire!
Merci d'avance!
Merci Steven! Mais que voulez-vous dire par "envoyer par courrier"? – PauloIke
Vous pouvez gérer pour envoyer plusieurs messages par session, mais je ne pense pas que Gmail gère cette chose. – Mech45
néanmoins soyez prudent avec le maximum de sessions simultanées et la limite de message que vous pouvez envoyer par minute/heure. – Mech45