Почтовая программа PHPMailer - Как вы удаляете получателей


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

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

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

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

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

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

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

Author: Joe Majewski, 2012-06-08

2 answers

Вы можете использовать Очищающие средства( )

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

 87
Author: GDP, 2015-11-06 03:59:55

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

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

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

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

Я использую PHPMailer 5.2

 26
Author: , 2012-06-08 16:20:16