此问题在此处已有答案:
Sending bulk email to an array of users using php mailer function(3个答案)
昨天关门了。
正如标题所示,如何使用PHPMailer批量发送电子邮件?我有一个代码,当用户单击表中的特定按钮时,该用户将通过他们的电子邮件发送电子邮件(通过选择查询)。现在我有了这样的代码,其中当用户选择数据表中的多个数据时,一个查询将运行并更新所有选定项的数据。然后,我现在从我的工作邮件复制代码到循环查询(由于条件而嵌套),不幸的是,电子邮件部分不起作用,但查询起作用了。这似乎有什么问题?
包括
include(dirname(__DIR__).'/db.php');
include(dirname(__DIR__).'/phpmailer/src/Exception.php');
include(dirname(__DIR__).'/phpmailer/src/PHPMailer.php');
include(dirname(__DIR__).'/phpmailer/src/SMTP.php');
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
嵌套代码
else if ($category=="pend")
{
if ($val==1){
foreach ($all_id as $value) {
$query = mysqli_query($db,"SELECT * FROM tbl_person where app_id='$value' and app_status='2';");
while($row= mysqli_fetch_array($query)) {
$email = $row["app_email"];
$name = $row["app_fname"]." " . $row["app_mname"].". ".$row["app_lname"];
}
$update = "Update tbl_person set app_status=3 WHERE app_id='$value'";
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.office365.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = 'useremail'; //sample
$mail->Password = 'emailpassword'; //sample
$mail->SetFrom('useremail', 'username'); //sample
$mail->addAddress($email, $name);
$mail->IsHTML(true);
$mail->Subject = 'Application Status';
$mail->Body = 'Message Body Here';
$mail->AltBody = 'Message Alt Body Here';
if (mysqli_query($db,$update))
{
header('location:../application.php');
}
}
}
else if ($val==2){
foreach ($all_id as $value) {
$update = "Update tbl_person set app_status=4 WHERE app_id='$value'";
if (mysqli_query($db,$update)) {
header('location:../application.php');
}
}
}
else{
echo "Something went wrong";
}
}
我试过把邮件代码移到if condition for query
里面和前面,也试过移走主查询来检查它是否工作,但它没有。我怀疑选择查询不像其他代码那样工作,不幸的是我找不到一种方法来检查这是否是真的。这是我用于我的单键方法的相同代码。当我尝试将其合并到循环中时,电子邮件不再工作
1条答案
按热度按时间hgb9j2n61#
好的。我能够解决这个问题,只需将电子邮件放入一个数组,然后尝试在邮件中执行foreach。
数组的代码
邮寄者代码