123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- /*
- * This file is part of SwiftMailer.
- * (c) 2009 Fabien Potencier <fabien.potencier@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- /**
- * Stores Messages in a queue.
- *
- * @author Fabien Potencier
- */
- class Swift_Transport_SpoolTransport implements Swift_Transport
- {
- /** The spool instance */
- private $_spool;
- /** The event dispatcher from the plugin API */
- private $_eventDispatcher;
- /**
- * Constructor.
- */
- public function __construct(Swift_Events_EventDispatcher $eventDispatcher, Swift_Spool $spool = null)
- {
- $this->_eventDispatcher = $eventDispatcher;
- $this->_spool = $spool;
- }
- /**
- * Sets the spool object.
- *
- * @param Swift_Spool $spool
- *
- * @return Swift_Transport_SpoolTransport
- */
- public function setSpool(Swift_Spool $spool)
- {
- $this->_spool = $spool;
- return $this;
- }
- /**
- * Get the spool object.
- *
- * @return Swift_Spool
- */
- public function getSpool()
- {
- return $this->_spool;
- }
- /**
- * Tests if this Transport mechanism has started.
- *
- * @return bool
- */
- public function isStarted()
- {
- return true;
- }
- /**
- * Starts this Transport mechanism.
- */
- public function start()
- {
- }
- /**
- * Stops this Transport mechanism.
- */
- public function stop()
- {
- }
- /**
- * Sends the given message.
- *
- * @param Swift_Mime_Message $message
- * @param string[] $failedRecipients An array of failures by-reference
- *
- * @return int The number of sent e-mail's
- */
- public function send(Swift_Mime_Message $message, &$failedRecipients = null)
- {
- if ($evt = $this->_eventDispatcher->createSendEvent($this, $message)) {
- $this->_eventDispatcher->dispatchEvent($evt, 'beforeSendPerformed');
- if ($evt->bubbleCancelled()) {
- return 0;
- }
- }
- $success = $this->_spool->queueMessage($message);
- if ($evt) {
- $evt->setResult($success ? Swift_Events_SendEvent::RESULT_SUCCESS : Swift_Events_SendEvent::RESULT_FAILED);
- $this->_eventDispatcher->dispatchEvent($evt, 'sendPerformed');
- }
- return 1;
- }
- /**
- * Register a plugin.
- *
- * @param Swift_Events_EventListener $plugin
- */
- public function registerPlugin(Swift_Events_EventListener $plugin)
- {
- $this->_eventDispatcher->bindEventListener($plugin);
- }
- }
|