Я пытаюсь отправить электронные письма для взаимного использования людей с разными телами, используя один код, используя PHPMailer через SMTP. Мой код выглядит следующим образом:Несколько писем с PHPMailer
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "xxxxxxxx";
$mail->SetFrom('[email protected]');
$mail->Subject = "System Change";
$add = array("a", "b", "c");
foreach ($add as $address) {
$current = clone $mail;
if ($address == 'a')
{
$current->AddAddress('[email protected]');
$current->MsgHTML("Message1");
$current->send();
}
if ($address == 'b')
{
$current->AddAddress('[email protected]');
$current->MsgHTML("Message2");
$current->send();
}
if ($address == 'c')
{
$current->AddAddress('[email protected]');
$current->MsgHTML("Message3");
$current->send();
}
}
exit;
if($mail->Send())
{ echo "SUCCESSFUL"; }
else echo "ERROR IN SENDING MAILS";
exit;
}
?>
вопрос он отправляет почту, но только посылая первые 2, а затем отображая ошибку тайм-аута. Есть ли какой-либо параметр, который мне нужно изменить или это проблема с моим кодом? Редактировал его разными способами, но в итоге он отправляет только 2 письма вместо 3. Цените любую помощь :) Спасибо!
Небольшая форма предупреждения: Я бы порекомендовал вызывать '' '$ current-> ClearAllRecipients()' '' после отправки почты. Это предотвращает отправку второй почты первому получателю, также когда '' '$ current-> send()' '' вызывается – AgeDeO
Чтобы добавить: '$ mail-> ClearAddresses();', '$ mail-> ClearCCs() ; ',' $ mail-> ClearBCCs(); ',' $ mail-> clearAttachments(); ' – zanderwar
Вы используете старую версию PHPMailer. Обновите его. – Synchro