Envoi massif de mails, comment faire ?

WRInaute discret
Bonsoir à tous !

Je commence tout de suite par préciser que j'ai chercher en long et en large sur le moteur de recherche du forum mais rien de ce que j'ai trouvé n'a pu répondre à ma question.

Evidement, ce n'est pas du SPAM, les personnes qui souhaitent recevoir les emails l'ont autorisé de plein gré.

Je cherche à améliorer mon script de concours pour qu'il envoi à chaque participant un email (non personnalisé) avec les statistiques hebdomadaires (il faut tabler sur environ 350 inscrits).

Je ne sais pas trop comment m'y prendre. Est-ce qu'il faut que j'utilise une boucle ou il y a quelque chose de plus léger ?
De plus sur PHP.net on me dédonseille d'utiliser la fonction mail() pour l'envoi massif. Ils conseillent d'utiliser PEAR::Mail (http://pear.php.net/package/Mail).

Voilà mon code pour le moment, mais je trouve que l'envoi est relativement long et je sais pas exactement la différence qu'apporte cette classe par rapport à la fonction mail() :?

Avec cette classe mail je peux choisir entre Mail() ou SMTP, que me conseillez vous ?

Merci d'avance pour votre aide ! :p
 
WRInaute discret
Je sais mais je préfererais que ce soit automatique et que je l'insère dans mon script de comptage des points. Surtout qu'il se fait à minuit, je tiens pas à le faire manuellement... :roll:
 
Nouveau WRInaute
Nous n'avons rencontré aucun soucis avec la fonction mail() et naturellement la lenteur peut provenir du contenu des messages (textes, images embedded ou pas, etc.)
 
WRInaute discret
Je vais rester sur la fonction mail() en attendant alors. Est-ce qu'il est nécessaire de mettre un sleep() à chaque boucle pour ne pas surcharger le serveur où c'est inutile pour 350 mails ?
 
WRInaute accro
CrazyCow007 a dit:
Je vais rester sur la fonction mail() en attendant alors. Est-ce qu'il est nécessaire de mettre un sleep() à chaque boucle pour ne pas surcharger le serveur où c'est inutile pour 350 mails ?

Tout depend de ton serveur mail, pour l'envoie de n mails toute les heures => CRON est ton ami. -www.cron.fr
 
WRInaute discret
Non c'est une fois par semaine. Pour le moment mon script s'exécute à partir de 0h00 le mercredi, au moment où arrive un visiteur. Evidement ça peut poser problème si le chargement dure 10sec et qu'il arrête le chargement de la page :roll: Donc je pense que je vais me rediriger sur un système CRON effectivement...
 
WRInaute accro
CrazyCow007 a dit:
Non c'est une fois par semaine. Pour le moment mon script s'exécute à partir de 0h00 le mercredi, au moment où arrive un visiteur. Evidement ça peut poser problème si le chargement dure 10sec et qu'il arrête le chargement de la page :roll: Donc je pense que je vais me rediriger sur un système CRON effectivement...

C'est mieux, car si c'est un crawler qui tombe dessus le premier, le serveur risque de ne pas executer le source dans son ensemble.

Je te parlais de l'envoie par exemple de 100 mails par heure avec CRON. dans ce cas, fait 1 table de plus avec 2 champs => limite + date
 
WRInaute discret
Ah oui bonne idée, je vais essayer de faire ça :wink:
Donc je résume :
Je fais 100 boucles contenant la fonction mail(), opération que je fais répéter toutes les heures jusqu'à ce que la totalité de la liste soit terminée (l'envoi de mails se fera donc de minuit à 3h) ?

EDIT : Puisque maintenant j'utilise une tâche CRON, je n'ai plus besoin de faire vraiment attention au temps de traitement. Je peux donc très bien personnalisé chaque email envoyé non ?
 
WRInaute accro
Oui, mais encore une fois, le nombre de mail envoyé d'1 coup depend de la capacité de stockage et d'envoie de ton serveur mail. Pose leur la question.

Le temps d'execution du script n'a rien a voir avec le CRON, il devra s'excuter en moins de 30 secondes, tu peux allonger la durée avec la fonction set_time_limit(0) si ton serveur la supporte.
 
Discussions similaires
Haut