Overview

Packages

  • CONTENIDO
  • Core
    • Authentication
    • Backend
    • Cache
    • CEC
    • Chain
    • ContentType
    • Database
    • Debug
    • Exception
    • Frontend
      • Search
      • URI
      • Util
    • GenericDB
      • Model
    • GUI
      • HTML
    • I18N
    • LayoutHandler
    • Log
    • Security
    • Session
    • Util
    • Validation
    • Versioning
    • XML
  • Module
    • ContentRssCreator
    • ContentSitemapHtml
    • ContentSitemapXml
    • ContentUserForum
    • NavigationTop
    • ScriptCookieDirective
  • mpAutoloaderClassMap
  • None
  • Plugin
    • ContentAllocation
    • CronjobOverview
    • FormAssistant
    • FrontendLogic
    • FrontendUsers
    • Linkchecker
    • ModRewrite
    • Newsletter
    • Repository
      • FrontendNavigation
      • KeywordDensity
    • SearchSolr
    • SmartyWrapper
    • UrlShortener
    • UserForum
    • Workflow
  • PluginManager
  • Setup
    • Form
    • GUI
    • Helper
      • Environment
      • Filesystem
      • MySQL
      • PHP
    • UpgradeJob
  • Smarty
    • Cacher
    • Compiler
    • Config
    • Debug
    • PluginsBlock
    • PluginsFilter
    • PluginsFunction
    • PluginsInternal
    • PluginsModifier
    • PluginsModifierCompiler
    • PluginsShared
    • Security
    • Template
    • TemplateResources
  • Swift
    • ByteStream
    • CharacterStream
    • Encoder
    • Events
    • KeyCache
    • Mailer
    • Mime
    • Plugins
    • Transport

Classes

  • Swift_FailoverTransport
  • Swift_LoadBalancedTransport
  • Swift_MailTransport
  • Swift_Plugins_Loggers_ArrayLogger
  • Swift_Plugins_Loggers_EchoLogger
  • Swift_SendmailTransport
  • Swift_SmtpTransport
  • Swift_Transport_AbstractSmtpTransport
  • Swift_Transport_Esmtp_Auth_CramMd5Authenticator
  • Swift_Transport_Esmtp_Auth_LoginAuthenticator
  • Swift_Transport_Esmtp_Auth_PlainAuthenticator
  • Swift_Transport_Esmtp_AuthHandler
  • Swift_Transport_EsmtpTransport
  • Swift_Transport_FailoverTransport
  • Swift_Transport_LoadBalancedTransport
  • Swift_Transport_MailTransport
  • Swift_Transport_SendmailTransport
  • Swift_Transport_SimpleMailInvoker
  • Swift_Transport_StreamBuffer

Interfaces

  • Swift_Plugins_Logger
  • Swift_Plugins_Pop_Pop3Exception
  • Swift_Transport
  • Swift_Transport_Esmtp_Authenticator
  • Swift_Transport_EsmtpHandler
  • Swift_Transport_IoBuffer
  • Swift_Transport_MailInvoker
  • Swift_Transport_SmtpAgent
  • Swift_TransportException
  • Overview
  • Package
  • Function
  • Todo
  • Download
  1: <?php
  2: 
  3: /*
  4:  * This file is part of SwiftMailer.
  5:  * (c) 2009 Fabien Potencier
  6:  *
  7:  * For the full copyright and license information, please view the LICENSE
  8:  * file that was distributed with this source code.
  9:  */
 10: 
 11: /**
 12:  * Redirects all email to a single recipient.
 13:  * @package Swift
 14:  * @subpackage Plugins
 15:  * @author Fabien Potencier
 16:  */
 17: class Swift_Plugins_RedirectingPlugin implements Swift_Events_SendListener
 18: {
 19:     /**
 20:      * The recipient who will receive all messages.
 21:      * @var string
 22:      * @access private
 23:      */
 24:     private $_recipient;
 25: 
 26:     /**
 27:      * Create a new RedirectingPlugin.
 28:      * @param int $recipient
 29:      */
 30:     public function __construct($recipient)
 31:     {
 32:         $this->_recipient = $recipient;
 33:     }
 34: 
 35:     /**
 36:      * Set the recipient of all messages.
 37:      * @param int $threshold
 38:      */
 39:     public function setRecipient($recipient)
 40:     {
 41:         $this->_recipient = $recipient;
 42:     }
 43: 
 44:     /**
 45:      * Get the recipient of all messages.
 46:      * @return int
 47:      */
 48:     public function getRecipient()
 49:     {
 50:         return $this->_recipient;
 51:     }
 52: 
 53:     /**
 54:      * Invoked immediately before the Message is sent.
 55:      * @param Swift_Events_SendEvent $evt
 56:      */
 57:     public function beforeSendPerformed(Swift_Events_SendEvent $evt)
 58:     {
 59:         $message = $evt->getMessage();
 60:         $headers = $message->getHeaders();
 61: 
 62:         // save current recipients
 63:         $headers->addMailboxHeader('X-Swift-To', $message->getTo());
 64:         $headers->addMailboxHeader('X-Swift-Cc', $message->getCc());
 65:         $headers->addMailboxHeader('X-Swift-Bcc', $message->getBcc());
 66: 
 67:         // replace them with the one to send to
 68:         $message->setTo($this->_recipient);
 69:         $headers->removeAll('Cc');
 70:         $headers->removeAll('Bcc');
 71:     }
 72: 
 73:     /**
 74:      * Invoked immediately after the Message is sent.
 75:      *
 76:      * @param Swift_Events_SendEvent $evt
 77:      */
 78:     public function sendPerformed(Swift_Events_SendEvent $evt)
 79:     {
 80:         $this->_restoreMessage($evt->getMessage());
 81:     }
 82: 
 83:     // -- Private methods
 84: 
 85:     private function _restoreMessage(Swift_Mime_Message $message)
 86:     {
 87:         // restore original headers
 88:         $headers = $message->getHeaders();
 89: 
 90:         if ($headers->has('X-Swift-To')) {
 91:             $message->setTo($headers->get('X-Swift-To')->getNameAddresses());
 92:             $headers->removeAll('X-Swift-To');
 93:         }
 94: 
 95:         if ($headers->has('X-Swift-Cc')) {
 96:             $message->setCc($headers->get('X-Swift-Cc')->getNameAddresses());
 97:             $headers->removeAll('X-Swift-Cc');
 98:         }
 99: 
100:         if ($headers->has('X-Swift-Bcc')) {
101:             $message->setBcc($headers->get('X-Swift-Bcc')->getNameAddresses());
102:             $headers->removeAll('X-Swift-Bcc');
103:         }
104:     }
105: }
106: 
CMS CONTENIDO 4.9.7 API documentation generated by ApiGen