Version complète: sur le forum Webmaster Hub : timeout envoi de mail
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
liou13
Bojour,
j'ai créé une newsletter pour mon site, et le probleme est que si il va y avoir baucoup de personne, je risque d'avoir un probleme de time out avec le navigateur.

J'utilise une boucle "for" pour envoyer les mail a tous les inscrit, mais comment je pourrais faire pour que par exemple, j'affiche un echo "ok"; tous les 10 mails envoyés. Cela devrai me permetre de gerer le probleme des timeout.
Merci d'avance
marcha
Salut,

Tu peux envoyer tes mails par groupe de x puis répondre au navigateur. Dans la page tu met un meta refresh qui rappelle
la page. Tu gère avec la session ou des paramettre le numéro du groupe suivant.

C'est une solution simple qui a le gros défaut d'interrompre l'envoi des groupes restants si tu quitte le navigateur.

Autrement je ne vois pas d'autre solution que PHP_CLI avec un cron. Je suis preneur si il y a d'autre idées smile.gif
Belf
Tu utilises la fonction mail() ? Si c'est le cas fait attention, cette solution n'est pas adaptée, il vaut mieu envoyer les emails par protocole SMTP, il y a des classes toutes faites mais j'ai zappé le nom.

Sinon si tu souhaite quand même conservé cette fonction, et si ton hébergeur le permet, utilise la fonction set_time_limit() pour éviter le timeout de php :

CODE
set_time_limit($temps);

// $temps => temps maximal d'éxecution du script autorisé, en secondes


Je sais pas combien tu as de mail à envoyer mais si c'est beaucoup et que tu veux être tranquille met pas une valeur trop limite.

Belf
petit-ourson
phpmailer est une des classes toute faite.
Bourinho
Salut,

pour être sur avec le set_time_limit, tu n'as qu'à mettre :
CODE
set_time_limit(0);


wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.