我只是與phpmailer合作。我想生成多個消息並將它們發送給多個收件人。但是,generateMessage函數()只是發送給收件人列表中的第一個收件人。 這是我的代碼,任何幫助都很感激。PhP郵件 - 發送多個郵件給多個收件人
require_once("class.phpmailer.php");
set_time_limit(0);
$wh = implode("', '", $abc);
echo "aaa" . $wh;
//echo $email;
$db = DB::getInstance();
$query1 = $db->query("SELECT * FROM tablea WHERE Location IN ('$wh')");
$result1 = $query1->results();
$query2 = $db->query("SELECT * FROM tableb WHERE Location IN ('$wh')");
$result2 = $query2->results();
$query3 = $db->query("SELECT * FROM tablec");
$result3 = $query3->results();
foreach ($result3 as $b) {
$username = $b->email;
$password = $b->password;
$Times = $b->P2_Time;
}
$minutePerDay = (24 * 60)/$Times;
echo $minutePerDay;
foreach ($result1 as $r) {
$TimeP2SendE = $r->Timea;
break;
}
foreach ($result2 as $r) {
$TimeP2SendG = $r->Timea;
break;
}
$currentTime = date('Y-m-d H:i:s');
$TimeDifferentE = (strtotime($currentTime) - strtotime($TimeP2SendE))/60;
$TimeDifferentG = (strtotime($currentTime) - strtotime($TimeP2SendG))/60;
if ($TimeDifferentE >= $minutePerDay or $TimeDifferentG >= $minutePerDay) {
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Username = $username;
$mail->Password = $password;
$mail->AltBody = " ";
$mail->From = $username;
$mail->FromName = 'Noti';
$mail->clearAddresses();
$mail->AddAddress($email);
$mail->Subject = $title;
$mail->IsHTML(true);
$mail->Body = '<html><body>';
$mail->Body .= "<h3>Information </h3>";
$mail->Body .= '<table class="table table-border">';
$mail->Body .= "</table>";
$mail->Body .= "</body></html>";
if (!$mail->Send()) {
echo "Error sending: " . $mail->ErrorInfo;
} else {
echo "Letter is sent";
}
}
我已經運行此功能4次發送到4個不同的收件人,但它只是發送到第一個收件人。
爲什麼不添加包含所有聯繫人的陣列,從1所接觸到任何數目的存在和循環爲每個聯繫人的AddAddress功能。 – wayzz
從這裏$'email'到哪裏'$ mail-> AddAddress($ email);'? –
[PHPmailer - 多次發送電子郵件]的可能重複(https://stackoverflow.com/questions/22316358/phpmailer-multiple-sending-of-e-mail) –