/**
  * Get the sender from PostmanMessage and add it to the Postman_Zend_Mail object
  *
  * @param PostmanMessage $message        	
  * @param Postman_Zend_Mail $mail        	
  * @return PostmanEmailAddress
  */
 public function addFrom(PostmanMessage $message, Postman_Zend_Mail $mail)
 {
     $sender = $message->getFromAddress();
     // now log it and push it into the message
     $senderEmail = $sender->getEmail();
     $senderName = $sender->getName();
     assert(!empty($senderEmail));
     if (!empty($senderName)) {
         $mail->setFrom($senderEmail, $senderName);
     } else {
         $mail->setFrom($senderEmail);
     }
     return $sender;
 }
예제 #2
0
 /**
  * Aggregates all the content into a Message to be sent to the MailEngine
  *
  * @param unknown $to        	
  * @param unknown $subject        	
  * @param unknown $body        	
  * @param unknown $headers        	
  * @param unknown $attachments        	
  */
 private function populateMessageFromWpMailParams(PostmanMessage $message, $to, $subject, $body, $headers, $attachments)
 {
     $message->addHeaders($headers);
     $message->setBody($body);
     $message->setSubject($subject);
     $message->addTo($to);
     $message->setAttachments($attachments);
     return $message;
 }
 /**
  * Add attachments to the message
  *
  * @param Postman_Zend_Mail $mail        	
  */
 private function addAttachmentsToMail(PostmanMessage $message)
 {
     $attachments = $message->getAttachments();
     if (isset($attachments)) {
         $this->mandrillMessage['attachments'] = array();
         if (!is_array($attachments)) {
             // WordPress may a single filename or a newline-delimited string list of multiple filenames
             $attArray = explode(PHP_EOL, $attachments);
         } else {
             $attArray = $attachments;
         }
         // otherwise WordPress sends an array
         foreach ($attArray as $file) {
             if (!empty($file)) {
                 $this->logger->debug("Adding attachment: " . $file);
                 $attachment = array('type' => 'attachment', 'name' => basename($file), 'content' => file_get_contents($file));
                 array_push($this->mandrillMessage['attachments'], $attachment);
             }
         }
     }
 }
예제 #4
0
 /**
  * Creates a Log object for use by writeToEmailLog()
  *
  * @param PostmanMessage $message        	
  * @param unknown $transcript        	
  * @param unknown $statusMessage        	
  * @param unknown $success        	
  * @param PostmanModuleTransport $transport        	
  * @return PostmanEmailLog
  */
 private function createLog(PostmanEmailLog $log, PostmanMessage $message = null, $transcript, $statusMessage, $success, PostmanModuleTransport $transport)
 {
     if ($message) {
         $log->sender = $message->getFromAddress()->format();
         $log->toRecipients = $this->flattenEmails($message->getToRecipients());
         $log->ccRecipients = $this->flattenEmails($message->getCcRecipients());
         $log->bccRecipients = $this->flattenEmails($message->getBccRecipients());
         $log->subject = $message->getSubject();
         $log->body = $message->getBody();
         if (null !== $message->getReplyTo()) {
             $log->replyTo = $message->getReplyTo()->format();
         }
     }
     $log->success = $success;
     $log->statusMessage = $statusMessage;
     $log->transportUri = PostmanTransportRegistry::getInstance()->getPublicTransportUri($transport);
     $log->sessionTranscript = $log->transportUri . "\n\n" . $transcript;
     return $log;
 }
 /**
  * Add attachments to the message
  *
  * @param Postman_Zend_Mail $mail        	
  */
 private function addAttachmentsToMail(PostmanMessage $message)
 {
     $attachments = $message->getAttachments();
     if (!is_array($attachments)) {
         // WordPress may a single filename or a newline-delimited string list of multiple filenames
         $attArray = explode(PHP_EOL, $attachments);
     } else {
         $attArray = $attachments;
     }
     // otherwise WordPress sends an array
     foreach ($attArray as $file) {
         if (!empty($file)) {
             $this->logger->debug("Adding attachment: " . $file);
             $this->email->addAttachment(basename($file));
         }
     }
 }