2010-09-18 4 views
0

J'utilise PHP Swift Mailer pour envoyer un courrier en masse à un ensemble d'utilisateurs. Mais je ne suis pas capable de suivre le courrier envoyé.Comment puis-je suivre le courrier envoyé à l'aide de PHP Swift Mailer?

Mon code:

<?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); 
?> 

J'utilise la méthode batchSend() pour envoyer du courrier, ce qui me donne le nombre de courrier qui a été envoyé, mais il ne me donne pas la liste des e-mail qui a été envoyé. Comment est-ce possible, y a-t-il un plugin ou une fonction disponible? L'utilisation du plugin Logger me donnera le journal, mais je suis incapable de lire à partir de cela.

Répondre

2

Vous pouvez obtenir un tableau d'adresses e-mail qui ont été rejetées par le passage d'une variable par référence à batchSend() pour le système à remplir:

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

Ensuite, vous pouvez array_diff() ceux de votre tableau $to_mail pour obtenir les réussis.

+0

J'ai essayé cela, en passant l'échec en tant que paramètre, et essayé d'envoyer le courrier à [email protected]_domain.com mais ne m'a renvoyé aucune panne .. le tableau était nul .. –

+0

Quelle version de Swiftmailer utilisez-vous? Si c'est v3 alors vous devriez utiliser '$ mailer-> getFailedRecipients();' – Fanis

+0

j'utilise la version 4.0.6, va $ mailer-> getFailedRecipients(); travailler dans la version 4 ?? –

Questions connexes