Rechercher : dans
Par :

PHP mail() newsletter

Dernière réponse le 5 oct 2009 à 10:46:46 Diff, le 5 oct 2009 à 08:48:41 
 Signaler ce message aux modérateurs

Bonjour,
j'ai un souci avec la fonction mail php.
Quand je lance un lancement de mails de la news letter, ça plante car le nombre d'adresses en Cci est important. Quand je lance un mail par adresse, ça va. Sauf que c'est long. Et quand la newsletter sera trop importante (niveau nombre de destinataire), ça sera problématique.
Comment résoudre ce problème ?

Merci.

Configuration: Windows XP
Firefox 3.5.3

Meilleures réponses pour « PHP mail() newsletter » dans :
Faire une newsletter VoirFaire une newsletter Une newsletter est une lettre d'information envoyée périodiquement par mail à des abonnés. Composée de texte, illustrations, liens renvoyant vers votre site, son contenu peut être par exemple une sélection de produits, un...
[PHP] Fonction mail() VoirLa fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
[Langages] Envoyer un mail avec pièce jointe VoirLes mails, tout comme les pages web, sont livrés avec des en-têtes (headers en anglais). Ces en-têtes servent à donner quelques détails nécessaires comme l'adresse du destinataire, celle de l'envoyeur, la date de l'envoi, le sujet du mail etc. Elles...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...

1

Nabla's, le 5 oct 2009 à 09:45:00

Tu as essayé les 2 extrèmes: envoyer tout d'un coup, et envoyer un par un... et si tu envoyais les mails avec par exemple 10 destinataires dans le CCi à chaque fois ? (comme pour l'envoi mail par mail, attention aux timeouts qui sont généralement de 30 secondes en php)

Répondre à Nabla's

2

Diff, le 5 oct 2009 à 09:59:39

C'est testé mais les adresses étant assez longues ou assez courtes, ça dépend, ça peut marcher oiu pas selon l'endroit où je serai.

En fait là j'ai deux idées là. Je verrai dans la semaine laquelle je mets en place (ou une autre si quelqu'un en a une meilleure) :
1 mesurer à partir de combien de caractères ça plante et parcourir la base de données en mesurant les adresses mails. dès qu'on s'approche de la limite, on envoie le mail et on recommence jusqu'à l'épuisement des adresses mails
2 envoyer 15 mails à un destinataires et ouvrir alors une nouvelle page qui enverra les 15 suivantes et on recommence. Ainsi on devrait éviter le timeout, non ?

Répondre à Diff

3

Nabla's, le 5 oct 2009 à 10:07:51

Tu peux meme faire un mix des deux, en utilisant la technologie AJAX:
tu détermines la taille max des envois (ca tu peux le faire une fois pour toutes pour le serveur), et pour envoyer la newsletter, tu fais une page en AJAX qui va lancer le script d'envoi de mails.... le script d'envoi de mail contiendra la liste d'emails (dans une variable de sessions par exemple), enverra les mails et supprimera de la liste des emails qui ont déja été envoyés.

Ton script ajax renverra un truc du genre"15/350 mails envoyés", et tu pourra suivre en temps réel l'avancement de l'envoi de mails .... dès que ton script t'envoi une confirmationd 'envoi de mails, tu actualise la page du client (toujours en ajax), et tu lances l'appel suivant au script, tant que t'as pas comme retour "FINI"....
voila.... t'as plus qu'à t'interesser à l'ajax :D

Répondre à Nabla's

4

Diff, le 5 oct 2009 à 10:41:26

Tiens oui l'AJAX, je n'ai pas encore l'habitude (mais j'en utilise assez souvent en plus).
Merci. Je pense que ça ira.

Quand j'aurai le temps cette semaine.

Répondre à Diff

5

 Nabla's, le 5 oct 2009 à 10:46:46

Quand tu auras fais ton code, n'hésites pas à le poster ici (au moins les parties interessantes), et passes le sujet en résolu pour montrer que ton problème est fini

Répondre à Nabla's
Collection CommentÇaMarche.net