bebeboutik/tools/swift/Swift/Plugin/VerboseSending.php
Srv Bebeboutik 340bc7c146 push site
2016-01-04 12:48:08 +01:00

89 lines
2.5 KiB
PHP
Executable File

<?php
/**
* Swift Mailer Verbose Sending Plugin.
* Please read the LICENSE file
* @author Chris Corbyn <chris@w3style.co.uk>
* @package Swift_Plugin
* @subpackage VerboseSending
* @license GNU Lesser General Public License
*/
require_once dirname(__FILE__) . "/../ClassLoader.php";
Swift_ClassLoader::load("Swift_Events_SendListener");
Swift_ClassLoader::load("Swift_Plugin_VerboseSending_DefaultView");
/**
* Verbose Sending plugin for Swift Mailer.
* Displays "pass" or "fail" messages in realtime as the messages are sent.
* @package Swift_Plugin
* @subpackage VerboseSending
* @author Chris Corbyn <chris@w3style.co.uk>
*/
class Swift_Plugin_VerboseSending implements Swift_Events_SendListener
{
/**
* The view layer which displays the results.
* @var Swift_Plugin_VerboseSending_AbstractView
*/
protected $view;
/**
* Ctor.
* @param Swift_Plugin_VerboseSending_AbstractView The view object to display the result
*/
public function __construct(Swift_Plugin_VerboseSending_AbstractView $view)
{
$this->setView($view);
}
/**
* Part of the interface which is notified when a message has been sent.
* @param Swift_Events_SendEvent
*/
public function sendPerformed(Swift_Events_SendEvent $e)
{
$recipients = $e->getRecipients();
$failed = $e->getFailedRecipients();
$it = $recipients->getIterator("to");
while ($it->hasNext())
{
$it->next();
$address = $it->getValue();
$pass = !in_array($address->getAddress(), $failed);
$this->getView()->paintResult($address->getAddress(), $pass);
}
$it = $recipients->getIterator("cc");
while ($it->hasNext())
{
$it->next();
$address = $it->getValue();
$pass = !in_array($address->getAddress(), $failed);
$this->getView()->paintResult($address->getAddress(), $pass);
}
$it = $recipients->getIterator("bcc");
while ($it->hasNext())
{
$it->next();
$address = $it->getValue();
$pass = !in_array($address->getAddress(), $failed);
$this->getView()->paintResult($address->getAddress(), $pass);
}
}
/**
* Set the View component to display results.
* @param Swift_Plugin_VerboseSending_AbstractView The view object to display the result
*/
public function setView(Swift_Plugin_VerboseSending_AbstractView $view)
{
$this->view = $view;
}
/**
* Get the View component.
* @return Swift_Plugin_VerboseSending_AbstractView
*/
public function getView()
{
return $this->view;
}
}