Lorsque j'essaie d'envoyer un e-mail à partir de la boucle while avec PHPMailer, il envoie parfois 2, parfois 3 copies du même e-mail (de manière aléatoire) à chaque destinataire.Envoyer un e-mail dans while loop
Voici mon code. Pensez-vous qu'il a des problèmes?
$list = $_POST['list'];
$items = rtrim($_POST['items'],",");
$query = "SELECT * FROM `mail` WHERE `ID` IN ($items)";
$result = mysql_query($query);
$from = "[email protected]";
$fromname = "mysite";
$mail = new PHPMailer(true);
$mail->IsSendmail();
$mail->From = $from;
$mail->FromName = $fromname;
$mail->Subject = "Your subscription was confirmed";
while ($row = mysql_fetch_array ($result))
{
// HTML body
$body .= "<p>Hi ". $row['name'] ." <br /><br />";
$body .= "Your subscription request to " . $l_name ."'s list was confirmed.<br /><br />";
$body .= "Thank You !<br /><br />";
// Plain text body (for mail clients that cannot read HTML)
$text_body = "To view the message, please use an HTML compatible email viewer!";
$mail->Body = $body;
$mail->AltBody = $text_body;
$mail->AddAddress($row['email']);
$mail->Send();
$mail->ClearAddresses();
}
Pensez-vous que je devrais mettre cette mail->send();
hors de la boucle while et obtenir tous les e-mails à partir d'un tableau?
Ou pensez-vous que c'est le problème avec la requête MySQL?
Editer: J'ai vérifié la base de données, pas de problème avec la base de données mais j'ai compris que (2 disons qu'il y en a 2 dans le tableau) variable du corps dubliquée.
CORRECTIF: hé, je l'ai fait, je viens d'ajouter $body = "";
et ça marche parfaitement maintenant!
Je pense qu'il est plus probable que les doublons dans la avez base de données. – David
Je suis d'accord avec David. Vérifiez votre base de données. – mauris
Oui, je vais avec David. Vérifiez votre base de données – sathish