Si tu dois envoyer un mail à plusieurs centaines de personnes il faut faire attention de ne pas saturer le serveur de mail :
- certain serveurs de mails limitent le nombre d'envoie de mail par utilisateur dans un temps donnée. A mon boulot, on est limité à 100 mails par 30 secondes.
- certains serveurs sont sur des machines qui ne sont pas capable d'envoyer plus de n mails par secondes. (une fois le nombre dépassé de tant de mail, le serveur refusera les suivant)
- certains serveur ont une file d'attente en envoie qui est limité : si on la remplis à raz bord, les mails suivants seront refusé
De plus, l'envoie d'un mail prend un certain temps, en multipliant ce temps par le nombre de mail à envoyer, alors le script risque de dépasser le temps qui lui est impartie et donc de s'arrêter avant la fin du traitement. Si le script php est lancé en ligne de commande, il n'y aura pas ce probléme là.
Pour éviter tout ça, le mieux, c'est de penser à envoyer les mails par lot. je m'explique :
- le navigateur demande l'envoie de mail, le script va lire les n premiére lignes du fichiers et envoyer aux adresses correspondantes.
- une fois ces mails envoyé, le script va fermer le fichier et demander au navigateur de le rapeller à nouveau aprés tant de temps
- a l'appel suivant le script va lire les n premiéres lignes du fichier sans les traiter et les n suivantes qu'il traitera