8
votes

Comment envoie-t-on un email à 10 000 utilisateurs à Django?

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. xxx

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.

Qu'est-ce qui est un moyen efficace d'envoyer une explosion de courriel de masse à Django? Serait send_mass_mail () être plus efficace?


2 commentaires

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


3 Réponses :


0
votes

Je pense, un en-tête E-mail BCC ne peut pas contenir 10000 enregistrements.


1 commentaires

C'est correct. Cela dépend du service de messagerie, mais Amazon SES par exemple permet un maximum de 50 destinataires de BCC.



9
votes

Vous devez utiliser send_mass_mail car il ne fera pas la fermeture de la connexion à chaque fois. Docs

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.


0 commentaires

8
votes

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:

  • Ils géreront toutes les demandes de désinscription pour vous, vous n'avez donc pas à vous soucier de l'ajout de drapeaux d'exclusion à vos utilisateurs qui ne veulent pas vos emails.
  • Vous êtes moins susceptible d'obtenir le spam-filtré des boîtes de réception de vos utilisateurs ou d'ennuyer votre fournisseur d'hébergement.

    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.


0 commentaires