示例#1
0
 /**
  * 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);
     }
 }
示例#2
0
 /**
  * Swift's SendEvent listener.
  * Invoked when Swift sends a message
  * @param Swift_Events_SendEvent The event information
  * @throws Swift_ConnectionException If mail() returns false
  */
 public function sendPerformed(Swift_Events_SendEvent $e)
 {
     $message = $e->getMessage();
     $recipients = $e->getRecipients();
     $to = array();
     foreach ($recipients->getTo() as $addr) {
         if ($this->isWindows()) {
             $to[] = substr($addr->build(true), 1, -1);
         } else {
             $to[] = $addr->build();
         }
     }
     $to = implode(", ", $to);
     $bcc_orig = $message->headers->has("Bcc") ? $message->headers->get("Bcc") : null;
     $subject_orig = $message->headers->has("Subject") ? $message->headers->get("Subject") : null;
     $to_orig = $message->headers->has("To") ? $message->headers->get("To") : null;
     $bcc = array();
     foreach ($recipients->getBcc() as $addr) {
         $bcc[] = $addr->build();
     }
     if (!empty($bcc)) {
         $message->headers->set("Bcc", $bcc);
     }
     $bcc = null;
     $body_data = $message->buildData();
     $message_body = $body_data->readFull();
     $subject_enc = $message->headers->has("Subject") ? $message->headers->getEncoded("Subject") : "";
     $message->headers->set("To", null);
     $message->headers->set("Subject", null);
     $sender = $e->getSender();
     $this->returnPath = $sender->build();
     if ($message->headers->has("Return-Path")) {
         $this->returnPath = $message->headers->get("Return-Path");
     }
     if (preg_match("~<([^>]+)>[^>]*\$~", $this->returnPath, $matches)) {
         $this->returnPath = $matches[1];
     }
     $this->doMail($to, $subject_enc, $message_body, $message->headers, sprintf($this->getAdditionalParams(), $this->returnPath));
     $message->setLE($this->oldLE);
     $message->headers->set("To", $to_orig);
     $message->headers->set("Subject", $subject_orig);
     $message->headers->set("Bcc", $bcc_orig);
 }
示例#3
0
 /**
  * Called just before Swift sends a message.
  * We perform operations on the message here.
  * @param Swift_Events_SendEvent The event object for sending a message
  */
 public function beforeSendPerformed(Swift_Events_SendEvent $e)
 {
     $message = $e->getMessage();
     $recipients = $e->getRecipients();
     $to = array_keys($recipients->getTo());
     if (count($to) > 0) {
         $to = $to[0];
     } else {
         return;
     }
     $replacements = (array) $this->replacements->getReplacementsFor($to);
     $this->store = array("headers" => array(), "body" => false, "children" => array());
     $this->recursiveReplace($message, $replacements, $this->store);
 }