Intereting Posts

phpMailer – Как удалить получателей

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

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

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

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

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

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

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

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

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

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