Fonction mail() dans un while

jacko -  
lezao Messages postés 505 Statut Membre -
Bonjour,

j'ai un probleme dans ma fonction.

je vais chercher dans une table les emails et je les récupere avec un while dans lequel j'envoi mon mail.

mon probleme est que la derniere adresse email recoi le mail en xxx fois le nombre d email...

comment faire ? voici mon code :

while($r = mysql_fetch_array($req1))
{
//ici ma fonction mail avec comme destinataire : $r[email]
}

merci

A voir également:

2 réponses

avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Perso je te conseillerais plutôt d'utiliser les entêtes SMTP, avec le champ "copies carbones cachées" (Bcc), ça devrait être moins lourd car tu n'appelles qu'une fois la fonction mail().

Exemple :
<?php
$to      = 'webmaster@example.com';
$subject = 'Sujet de l\'email';
$message = 'Le blabla de ton email';

$headers = 'From: webmaster@example.com'."\r\n"
 . 'Reply-To: webmaster@example.com'."\r\n"
 . 'X-Mailer: PHP/' . phpversion();
 
$headers .= 'Bcc: ';

while(/* La boucle */) {
	$headers .= $email.',';
}
$headers = rtrim($headers, ',')."\r\n";

mail($to,$subject,$message,$headers);
?>
0
lezao Messages postés 505 Statut Membre 36
 
Moi je fais comme ça pour eviter que ce soit lourd, j'envois qu'une seul fois et je cumule les mails avec un ; de separation

$sql = "SELECT * FROM emails ";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {

$destinataire = $data["email"].";".$destinataire ;
}

$email = "test@hotmail.com" ;

mail("$destinataire",
"NEWSLETTER",
"[NEWSLETTER]

Sujet : $sujetnewsletter
LE MESSAGE : $textenewsletter ",
"From: $email\nReply-To: $email");
lezao : quand tu sais pas , tu me demandes je sais tout....non je déconne...presque tout.
0