如何跟踪使用PHP Swift Mailer发送的邮件?

时间:2010-09-18 06:26:31

标签: php swiftmailer

我正在使用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 个答案:

答案 0 :(得分:2)

您可以通过引用batchSend()传递变量来获取一系列电子邮件地址,以便系统填写:

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

然后您可以array_diff()来自$to_mail数组的那些来获得成功的数据。