Mon application Django compte 10 000 utilisateurs, tous avec des courriels. Je voudrais envoyer un message électronique à tous dites une fois par mois. Ce message pourrait avoir des pièces jointes PDF.
Ce que j'ai essayé utilise un objet EmailMessage pour envoyer un email à tous. J'ajoute les adresses électroniques de tous les utilisateurs à la composante BCC de cet e-mailMessage avant l'envoi. P> Cependant, lorsque j'envoie le courrier électronique, Django se plaint que "la connexion a été réinitialisée" et N'envoie pas. Je suppose que la connexion du serveur était fermée. P> Qu'est-ce qui est un moyen efficace d'envoyer une explosion de courriel de masse à Django? Serait send_mass_mail () code> être plus efficace? P> p>
3 Réponses :
Je pense, un en-tête E-mail BCC ne peut pas contenir 10000 enregistrements. P>
C'est correct. Cela dépend du service de messagerie, mais Amazon SES par exemple permet un maximum de 50 destinataires de BCC.
Vous devez utiliser Je ferais également chunk les messages en groupes d'environ 100-1 000, en fonction de la puissance de votre serveur. La raison est que vous pouvez attraper des erreurs dans des groupes plus petits pour réessayer. Cela donne également un email distinct par destinataire, idéal. Les milliers de personnes ne sont pas géniales. P> send_mass_mail code> car il ne fera pas la fermeture de la connexion à chaque fois. Docs P>
Une suggestion alternative: inscrivez-vous à un service de diffusion et utilisez leurs API pour conserver votre liste de messagerie et envoyer des mailings. Quelques avantages de cette approche: P>
Il existe des wrappers API disponibles pour, entre autres, MailChimp et Moniteur de campagne . Il devrait être assez facile d'ajouter des crochets pour ajouter de nouveaux utilisateurs à la liste de diffusion et (le cas échéant) Supprimer tous les utilisateurs qui suppriment leurs comptes. P>
Notez que vous avez oublié de vérifier le drapeau du destinataire.HassignedUpforemail. Aussi, moins humororelle, pourquoi créez-vous un «message» et pourquoi est-ce à l'intérieur de la boucle, d'être écrasée à chaque fois?
Avez-vous essayé via code.google.com/p/django-mailer