| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- <?php
 - /*
 -  * This file is part of SwiftMailer.
 -  * (c) 2009 Fabien Potencier
 -  *
 -  * For the full copyright and license information, please view the LICENSE
 -  * file that was distributed with this source code.
 -  */
 - 
 - /**
 -  * Replaces the sender of a message.
 -  *
 -  * @package Swift
 -  * @subpackage Plugins
 -  * @author Arjen Brouwer
 -  */
 - class Swift_Plugins_ImpersonatePlugin implements \Swift_Events_SendListener {
 - 
 -     /**
 -      * The sender to impersonate.
 -      * 
 -      * @var String
 -      * @access private
 -      */
 -     private $_sender;
 - 
 -     /**
 -      * Create a new ImpersonatePlugin to impersonate $sender.
 -      * 
 -      * @param string $sender address
 -      */
 -     public function __construct($sender) {
 -         $this->_sender = $sender;
 -     }
 - 
 -     /**
 -      * Invoked immediately before the Message is sent.
 -      * 
 -      * @param Swift_Events_SendEvent $evt
 -      */
 -     public function beforeSendPerformed(Swift_Events_SendEvent $evt) {
 -         $message = $evt->getMessage();
 -         $headers = $message->getHeaders();
 - 
 -         // save current recipients
 -         $headers->addPathHeader('X-Swift-Return-Path', $message->getReturnPath());
 - 
 -         // replace them with the one to send to
 -         $message->setReturnPath($this->_sender);
 -     }
 - 
 -     /**
 -      * Invoked immediately after the Message is sent.
 -      * 
 -      * @param Swift_Events_SendEvent $evt
 -      */
 -     public function sendPerformed(Swift_Events_SendEvent $evt) {
 -         $message = $evt->getMessage();
 - 
 -         // restore original headers
 -         $headers = $message->getHeaders();
 - 
 -         if ($headers->has('X-Swift-Return-Path')) {
 -             $message->setReturnPath($headers->get('X-Swift-Return-Path')->getAddress());
 -             $headers->removeAll('X-Swift-Return-Path');
 -         }
 -     }
 - }
 
 
  |