Page 1 sur 1

Temporisation pour emailing

Posté : 07 juin 2007, 14:58
par Raymond Domenech
Bonjour à tout le monde,
j'ai un script php qui risque d'être assez long à s'éxécuter complètement puisque, en 2 mots, ce scripts parcours un bdd, selectionne des adresse email (à peu près 2000), et envoie un mail à chacune de ces adresses. Je me demande (et je vous pose la question) s'il n'est pas risqué de laisser s'éxécuter un script aussi long, à savoir, ne va t-il pas planter à un moment?
Aussi, je me demandais s'il existait un moyen d'éxécuter ce script "petit à petit", par paquets d'adresses, et de le faire stopper de dans en temps pour qu'il reprenne son souffle.
Qu'en pensez vous??
Merci d'avance pour vos suggestions et conseils.

Posté : 07 juin 2007, 15:11
par Ryle
C'est en effet une très bonne chose, nottament pour ne pas saturer le serveur de messagerie :)

Tu peux avec set_time_limit() définir le temps d'exécution d'un script (et lui laisser ainsi plus que les 30 sec par défaut du php.ini

Quant aux pauses entre paquets de mail, il te suffit de faire appel à sleep() tous les X messages pour laisser un peu de temps au serveur pour traiter un par un chaque paquet de mails envoyés :)

Posté : 08 juin 2007, 06:52
par jpaul
Bonjour,

Pour le traitement par paquets, je me souviens avoir contourné les problèmes de time limit en utilisant le meta tag html refresh (avec un paramètre dans l'url indiquant où j'en suis).
Ca doit aussi être possible avec header de php...

Posté : 08 juin 2007, 07:20
par icebreak
Avec la fonction mail() , t'en a pour un paquet de temps.
Y a moyen de faire plus vite en utilisant le packer PEAR qui va bien.

Ou de faire directement toi même l'envoi par connection SMTP.
Ça t'évitera des trucs trop long.