J'ai une boucle foreach à partir de laquelle j'envoie des courriels pour mes clients. J'ai 4 clients dans mon db 1,2,3,4 Donc, selon la boucle foreach la boucle tournera 4 fois pour envoyer un e-mail à chaque client Mais dans la première course, il envoie un courriel au client 1. En 2ème Il envoie un e-mail aux clients 1 et 2. En troisième, il envoie un e-mail au client 1, 2, 3 et ainsi de suite.Valeurs de boucle ForEach conservant les valeurs précédentes
Comment puis-je envoyer un e-mail à un client? voici mon code.
$list=$tmp_con->query("SELECT name,email FROM users WHERE user_type='$tp' AND subscribed='yes' AND verified='1'") or die($tmp_con->error);
$lis=array();
while($row=$list->fetch_array()){
$lis[] = $row;
}
foreach($lis as $lst){
$content = str_replace("{name}", $lst['name'], $mail_content);
$content=$content."".$append_unsub;
/**************************************************phpmailer class***********************/
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = $mail_smtp_host; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = $mail_smtp_username; // SMTP username
$mail->Password = $mail_smtp_password; // SMTP password
$mail->SMTPSecure = $mail_smtp_enc; // Enable TLS encryption, `ssl` also accepted
$mail->Port = $mail_smtp_port; // TCP port to connect to
$mail->setFrom($mail_smtp_from_email, $mail_smtp_from_name);
$mail->addAddress($lst['email']); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $mail_subject;
$mail->Body = $content;
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
$lst['email']='';
/*************************************************php mailer ends here*************************************/
} ///foreach ends here
s'il vous plaît utiliser var_dump oder similaire pour créer une sortie de débogage, ce qui est dans l'objet $ mail et à l'intérieur $ lst ['email'] sur chaque appel de boucle –
Basez votre code sur [l'exemple de liste de diffusion fourni avec PHPMailer] (https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps). C'est beaucoup plus efficace que ce que vous avez ici. – Synchro