Как я могу отслеживать почту, отправленную с помощью PHP Swift Mailer? - PullRequest
0 голосов
/ 18 сентября 2010

Я использую PHP Swift Mailer для отправки массовой рассылки пользователям.Но я не могу отслеживать отправленную почту.

Мой код:

<?php 
require_once("includes/database.class.php");
require_once("lib/swift_required.php"); 
$con=DBClass::getConnection();
$db=DBClass::getDatabase($con);

$login_id="myloginname";
$password="mypassword";

$to_mail; //list of people 

//Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
          ->setUsername($login_id)
          ->setPassword($password);

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);


 //Rate limit to 25 emails per-minute
$mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin(
25, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE
        ));

//Create a message
        $message = Swift_Message::newInstance($subject)
          ->setFrom($login_id)
          ->setTo($to_mail)
          ->setBody($body,
                    'text/html'
                    ); 

$numSent=$mailer->batchSend($message);
?>

Я использую метод batchSend () для отправки почты, который дает мне счетчик почты, который имеетбыл отправлен, но он не дает мне список сообщений, которые были отправлены.Как это возможно, есть ли плагин или функция?

Использование плагина Logger выдаст мне журнал, но я не могу читать с него.

1 Ответ

2 голосов
/ 18 сентября 2010

Вы можете получить массив адресов электронной почты, которые были отклонены, передав переменную по ссылке batchSend() для заполнения системой:

http://swiftmailer.org/docs/failures-byreference

Тогда вы можете array_diff() те из вашего $to_mail массива, чтобы получить успешные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...