Page 1 sur 1

Problème sur l'envoi d'email aux abonnés newsletter

Posté : 23 janv. 2006, 16:58
par Butsay
Bonjour,

j'ai environ 5000 personnes abonnés à ma newsletter. Je réalise fréquemment un envoi d'email à ces abonnés via la commande php suivante qui fonctionne très bien :

$req=mysql_query("select * FROM newsletter");
while ($y=mysql_fetch_array($req))
{
$from_email = "[email protected]";
$entetedate = date("D, j M Y H:i");
$entetemail = "from: $from_email \n";
$entetemail .= "Cc: \n";
$entetemail .= "!bcc:! \n";
$entetemail .= "Reply-To: $from_email \n";
$entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ;
$entetemail .= "Date: $entetedate";
$email = $y[email];
mail($email, "xxx", "xxx", $entetemail);
}

J'ai la certitude qu'un grand nombre d'abonnés ne reçoivent pas l'email car je me suis inscrit à la 2500è place environ et je ne la reçois pas. Je n'ai également pas tout les retours que j'epère recevoir en terme de traffic.

Ma question est la suivante :
- Dans cette commande, y-a-t-il un nombre de boucles maxi réalisés par le "while" ce qui expliquerait qu'au bout d'un moment, les mails ne sont plus envoyés ?
- Comment puis-je tester l'envoi à tous les abonnés à la newsletter ?

J'ai déjà épuré toutes les erreurs d'email : du type les emails avec des ', " ? ; / \ @@ `{} ...etc

D'avance merci

Posté : 23 janv. 2006, 17:02
par DarkBlue
Hello ,

les scripts php par default s execute dans un temps maximum de 30 secondes , au dela le script s arrete !

Secondo dans ta boucle tu devrais enlever tout ce qui se repete c est a dire :
$from_email = "[email protected]"; 
$entetedate = date("D, j M Y H:i"); 
$entetemail = "from: $from_email \n"; 
$entetemail .= "Cc: \n"; 
$entetemail .= "!bcc:! \n"; 
$entetemail .= "Reply-To: $from_email \n"; 
$entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ; 
$entetemail .= "Date: $entetedate"; 
J'imagine que c est pour tout le monde pareil donc tu y declare en dessus une bonne fois pour toute et tu garde juste dans ta boucle l envoi du mail ,!

Ensuite je te conseil un
if(mail(....)){echo "Envoyé"}else{echo "erreur"};
du coups tu saura des l execution du script si les mails sont partis ou pas !