2010-09-18 2 views
0

Я использую PHP Swift Mailer для отправки массовой почты множеству пользователей. Но я не могу отслеживать отправленную почту.Как я могу отслеживать почту, отправленную с помощью 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 даст мне журнал, но я не могу это прочитать.

ответ

2

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

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

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

+0

Я пробовал, что, пропустив сбой в качестве параметра, и попытался отправить почту на [email protected]_domain.com, но не возвратил мне никаких сбоев .. массив был пустым .. –

+0

Какую версию Swiftmailer вы используете? Если это v3, тогда вы должны использовать '$ mailer-> getFailedRecipients();' – Fanis

+0

Я использую версию 4.0.6, будет $ mailer-> getFailedRecipients(); работа в версии 4 ?? –