[英]How to change from email address in smtp php mailer function sendmail()
[英]How to stop PHP Mailer from appending all email address on every email?
我一直在尝试许多不同的方法来防止PHP Mailer将来自数据库的每个电子邮件地址附加到每个电子邮件中。
我觉得并不是每个用户都可以从我的网站收到一封电子邮件,也无法看到其他几千封电子邮件添加到同一封电子邮件中。
这是我的代码,我已经尝试过许多不同的事情:
$query_select = "SELECT * FROM users";
$query = mysqli_query($connection, $query_select);
if($select_to == 'all'){
while($row = mysqli_fetch_assoc($query)) {
$user_email = $row['user_email'];
$send_to = $user_email;
$mail->setFrom('example@gmail.com', 'My website');
$mail->addAddress($send_to);
$mail->isHTML(true);
$mail->Subject = $subject_email;
$mail->Body = $content_email;
$mail->AltBody = $content_email;
}
} else {
if($select_to == 'single'){
$send_to = $to_single_email;
}
}
if($mail->send()){
$confirm = 'Sent.';
$send = array(
'confirm'=>$confirm
);
echo json_encode($send);
} else {
$confirm = 'There was en error while sending this email.';
$send = array(
'confirm'=>$confirm
);
echo json_encode($send);
}
$mail->send()
将通过一条消息发送到所有地址。 相反,您需要向每个收件人发送一封邮件。
while()
循环将类似于以下内容进行重构:
while($row = mysqli_fetch_assoc($query)) {
$user_email = $row['user_email'];
$send_to = $user_email;
$mail->setFrom('example@gmail.com', 'My website');
$mail->addAddress($send_to);
$mail->isHTML(true);
$mail->Subject = $subject_email;
$mail->Body = $content_email;
$mail->AltBody = $content_email;
$mail->send();
$mail->clearAllRecipients();
}
对clearAllRecipients()
的调用将清除以前的地址,否则这些地址将通过addAddress()
累积
您还需要为每个send()
调用在循环内添加错误检查
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.