Подтвердить что ты не робот

PhpMailer - Как удалить получателей

В этой теме много вопросов StackOverflow, но я не смог найти тот, который смог помочь с проблемой, с которой я сталкиваюсь. script, который я пишу, отправляет несколько писем различным получателям с различным содержимым сообщений.

Я могу заставить эту работу повторно инициализировать объект phpMailer несколько раз, но то, что я хотел бы сделать, это создать объект за один раз, а затем повторно назначить следующие поля:

$mail->AddAddress($email);
$mail->Subject = $subject;
$mail->IsHTML(false);
$mail->Body = $message;

Таким образом, я могу просто запустить эти четыре строки кода, а затем отправить почту, снова и снова, столько раз, сколько необходимо. Поля Subject, IsHTML и Body легко меняются, поэтому проблема, которую я имею, заключается в функции AddAddress.

Как вы можете догадаться, после того, как я отправлю первое электронное письмо, изменение получателей для будущих писем приведет к тому, что эти стеки будут включены в текущий список получателей.

Проще говоря, как удалить адреса электронной почты, связанные с моим объектом $mail, чтобы я мог назначать их каждый раз при удалении старых адресов?

Есть ли еще одна функция помимо AddAddress, которую я могу использовать, которая просто назначит адреса?

4b9b3361

Ответ 1

Вы можете использовать ClearAllRecipients()

$mailer->ClearAllRecipients( ); // clear all

Ответ 2

im, используя это всегда перед отправкой электронной почты получателям:

// clear addresses of all types
$mail->ClearAddresses();  // each AddAddress add to list
$mail->ClearCCs();
$mail->ClearBCCs();

тогда im делает именно это: (не используя CC или BCC, $toaddress - это всего лишь массив получателей)

foreach($toaddress as $key=>$val) { $mail->AddAddress( $val ); }

im, используя PHPMailer 5.2