JeuWeb - Crée ton jeu par navigateur

Version complète : Gérer une liste d'envois d'emails
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Hello,

Je voudrais gérer l'envoi de mailling lists à plusieurs listes d'adresses mais je ne sais pas trop comment m'y prendre.

Disons que j'ai une liste d'abonnés à la newsletter mais pas usagers du site, plus la liste de tous les usagers, plus une liste d'emails qui seront checkés sur différents clients pour vérifier que la newsletter présente bien *avant* de l'envoyer aux autres listes.



Voilà comment je m'y prendrais pour le moment :
Chaque source se trouve en base de données (c'est une table à part ou bien une table unique avec id de source)
je sélectionne ma liste de test, je clique sur envoyer. Mon programme va récupérer les adresses des inscrits à cette liste et les recopier dans une table « à envoyer » associée à la newsletter à envoyer.
Puis ensuite j'ai un autre programme ajax/CRON/dæmon qui va se charger d'envoyer les mails un par un ou 5 par 5 …

Sachant que l'une de mes listes fait environ 40 000 adresses, et une autre 200, est-ce que ça vous paraît un bon plan de blinder une table pour ensuite la vider petit à petit ?

Je fais ça car comme le PHP m'est imposé, et que l'application doit rester fluide, je compte lancer mes mails en ajax : tant que la table d'envois n'est pas vide, une routine ajax se connecte, envoie 5 mails, mets à jour l'affichage et recommence.

Merci
(23-01-2012, 11:02 AM)niahoo a écrit : [ -> ]Mon programme va récupérer les adresses des inscrits à cette liste et les recopier dans une table « à envoyer » associée à la newsletter à envoyer.
[..]
Sachant que l'une de mes listes fait environ 40 000 adresses, et une autre 200, est-ce que ça vous paraît un bon plan de blinder une table pour ensuite la vider petit à petit ?

non, tu laisse tranquille ta table où sont déjà les emails, tu rajoute un champs du genre last_email_id_sended, tu te fais une table email avec les id des emails à envoyer et leur contenu. quand tu a envoyé l'email id 123 tu update le champs last_email_id_sended. En plus ca te fais un historique des email envoyés. non?
Juste une petite remarque :

Si les emails sont personnalisés, on ne peut pas éviter l'envoi d'un email par inscrit.
Par contre, si ce sont juste des envois informatifs sans informations ciblées, l'utilisation des champs BCC permet d'envoyer un email à plusieurs personnes d'un seul coup tout en préservant l'anonymat des inscrits.

Comme dans la fonction Mail() de php les BCC sont stockés dans le header au format string, tu peux vraiment te lâcher et envoyer des emails impersonnels à une tripotée de destinataires en un seul coup. Bosser par blocs de 500 destinataires me semble un bon début dans ce cas.
(23-01-2012, 11:11 AM)php_addict a écrit : [ -> ]non, tu laisse tranquille ta table où sont déjà les emails, tu rajoute un champs du genre last_email_id_sended, tu te fais une table email avec les id des emails à envoyer et leur contenu. quand tu a envoyé l'email id 123 tu update le champs last_email_id_sended. En plus ca te fais un historique des email envoyés. non?

Hum, je ne suis pas sûr d'avoir bien compris ta méthode, peux-tu expliciter ?

(23-01-2012, 11:50 AM)Roworll a écrit : [ -> ]Juste une petite remarque :

Si les emails sont personnalisés, on ne peut pas éviter l'envoi d'un email par inscrit.
Par contre, si ce sont juste des envois informatifs sans informations ciblées, l'utilisation des champs BCC permet d'envoyer un email à plusieurs personnes d'un seul coup tout en préservant l'anonymat des inscrits.

Comme dans la fonction Mail() de php les BCC sont stockés dans le header au format string, tu peux vraiment te lâcher et envoyer des emails impersonnels à une tripotée de destinataires en un seul coup. Bosser par blocs de 500 destinataires me semble un bon début dans ce cas.

Effectivement je compte personnaliser les envois, mais éventuellement laisser l'option pour des envois groupés. Ensuite, les mails avec undiscloded recipients partent plus facilement en spam je crois.

(23-01-2012, 12:27 PM)niahoo a écrit : [ -> ]Hum, je ne suis pas sûr d'avoir bien compris ta méthode, peux-tu expliciter ?

je suppose que ce que tu compte faire est ceci (d'après ton 1er post)

- tu as une table utilisateur avec comme champs id, email, etc...
- tu copies tout les id de la table utilisateur dans une autre table email_to_send
- et quand tu envois un email a user_id = 102 tu supprime l'entrée dans la table email_to_send

si t'a 40.000 email cela devient lourd...

ne serait t il pas plus judicieux d faire ceci:

- dans ta table utilisateur tu rajoute un champs last_email_id_sended qui est l'id unique du dernier email envoyé à l'utilisateur
- tu te fais une table email avec comme champs id (relatif à last_email_id_sended), contenu (le contenu du mail)

maintenant supposons que tu veuille envoyer l'email "bonjour à tous" ayant pour id=103 dans ta table email

et bien quand tu envois l'email à l'utilisateur id=39999 tu UPDATE à 103 le champs last_email_id_sended de ta table utilisateur. Ainsi cela veut dire que le dernier email id recu par l'utilisateur 39999 est 103
ainsi tu n'a pas besoin de copier les id des utilisateur dans une autre table pour ensuite les supprimer...

est ce plus clair?

Mais tu ne prends pas en compte le fait que j'envoie à des listes et pas à tous mes utilisateurs à chaque fois.

Ici il faut que j'envoie telle newsletter à ma liste test puis à ma liste d'utilisateurs, mais si pendant ce temps j'envoie une autre lettre à ma liste de test et à une liste d'inscrits, tout va se mélanger.

Mais merci de ta participation Wink
Moi pour ma campagne de pub par rmail, j'aurais une table exprès pour avec la liste des mails (que j'aurais remplis via plusieurs sources dont ma table joueur de mon jeu), avec un champs "status":
0: mail envoyé
1: ouvert
2: cliqué sur le lien a l’intérieur du mail

et voilà. je pense qu'il faut bien séparer les deux, et ça roule et tu peux même faire des stats Wink
(23-01-2012, 06:22 PM)Argorate a écrit : [ -> ]Moi pour ma campagne de pub par rmail, j'aurais une table exprès pour avec la liste des mails (que j'aurais remplis via plusieurs sources dont ma table joueur de mon jeu), avec un champs "status":
0: mail envoyé
1: ouvert
2: cliqué sur le lien a l’intérieur du mail

et voilà. je pense qu'il faut bien séparer les deux, et ça roule et tu peux même faire des stats Wink
Comment tu fais pour savoir si le mail a été "ouvert", enfin si j'ai bien compris l'idée du statut "1".
une technique commune est de mettre une image de 1px transparente dans le mail avec un paramètre GET dans l'URL de l'attribut src de l'image, comme ça quand le client charge ses images, tu sais qu'il l'a fait et qui l'a fait.

Le problème étant que le chargement des images n'est pas systématique.
(23-01-2012, 10:04 PM)niahoo a écrit : [ -> ]une technique commune est de mettre une image de 1px transparente dans le mail avec un paramètre GET dans l'URL de l'attribut src de l'image, comme ça quand le client charge ses images, tu sais qu'il l'a fait et qui l'a fait.

Le problème étant que le chargement des images n'est pas systématique.
C'est clair que c'est l'unique solution que j'imaginais, mais pas toujours super fiable.
Pages : 1 2