Boucle PhpMailer

Répondre
Rolland
le 23/06/2009 à 14:14
Rolland
Bonjour,

Le but : récupérer les adresses des erreurs d'envoi dans un fichier txt.

Le code :
<?php
$postsNb = 0;
$mail = new phpmailer();
$mail->IsHTML(true);
$mail->From = "postmaster@".$domain;
$mail->FromName = $company." Newsletter";
$mail->Subject = $subject[$lang_abo];
for ($i=0;$i<$abosNb;$i++) {
$postsNb++;
$mail->Body = $html_body;
$mail->AltBody = $text_body;
$mail->AddAddress($abosList[$i][0]);
//$mail->AddStringAttachment();
if(!$mail->Send()) {
$logfile = "../logs/logletters.txt";
$fp = fopen($logfile, "a");
fwrite($fp, ($abosList[$i][0]."\r\n"));
fclose($fp);
//echo "Erreur d'envoi pour " . $abosList[$i][0]."<br>";
$postsNb--;
}
$mail->ClearAddresses();
$mail->ClearAttachments();
}
?>

Le problème : si une erreur est trouvée l'adresse correspondante est bien enregistrée dans le fichier log.
Mais l'envoi ne se fait plus pour les suivantes qui se retrouvent donc dans le log.

Qu'est ce qui fait que les envois se bloquent après une enregistrement d'erreur SVP ?

Merci
3SI - Sea, Sex, Sun and Internet
i M@N
le 23/06/2009 à 17:43
i M@N
Hello.

Comme ça je dirais que tu fais if(!$mail->Send()) { 1 erreur -> on loggue} mais t'as pas de else si y'a pas d'erreur...
il manque peut-être un if($mail->Send()) { -> on envoie et on logue kedal}

@+...
One Love, One Heart, One Unity.
LA GLOBULE
le 23/06/2009 à 20:08
LA GLOBULE
Tu rentres dans le if(!$mail->Send()) que si la méthode retourne false.
Mais l'expression $mail->Send() est évaluée.
En effet, on a tous connu le cas classique où tu as un if($a=3) et tu rentres tout le temps dedans car $a prend la valeur 3.

Donc a priori, le soucis ne vient pas de la.

Sinon, difficile de dire quelque chose.
Essaye de faire des print_r de ton objet phpmailer pour voir ce qu'il contient à chaque tour de boucle :/

N'hésites pas non plus à faire des echo dans la classe phpmailer pour voir pourquoi le Send retourne false ensuite.
Rolland
le 24/06/2009 à 14:50
Rolland
Bonjour,

Merci pour ces conseils.
Coincé sur une urgence encore pour quelques heures smiley, je les applique en suivant et vous tiens au courant.
3SI - Sea, Sex, Sun and Internet
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours