Author: Nick Sagona, III (nick@popphp.org)
Esempio n. 1
0
 /**
  * Get message type.
  *
  * @return string
  */
 protected function getMessageType()
 {
     $type = null;
     $numAttach = count($this->mail->getAttachments());
     if ($numAttach > 0 && null === $this->html && null === $this->text) {
         $type = null;
     } else {
         if ($numAttach > 0 && null !== $this->html && null !== $this->text) {
             $type = self::TEXT_HTML_FILE;
         } else {
             if ($numAttach > 0 && null !== $this->html) {
                 $type = self::HTML_FILE;
             } else {
                 if ($numAttach > 0 && null !== $this->text) {
                     $type = self::TEXT_FILE;
                 } else {
                     if (null !== $this->html && null !== $this->text) {
                         $type = self::TEXT_HTML;
                     } else {
                         if (null !== $this->html) {
                             $type = self::HTML;
                         } else {
                             if (null !== $this->text) {
                                 $type = self::TEXT;
                             }
                         }
                     }
                 }
             }
         }
     }
     return $type;
 }
Esempio n. 2
0
 /**
  * Get email data from file
  *
  * @param  string $filename
  * @throws Exception
  * @return array
  */
 protected function getEmailFromFile($filename)
 {
     $contents = file_get_contents($filename);
     $email = array('to' => null, 'subject' => null, 'headers' => null, 'message' => null);
     $headers = substr($contents, 0, strpos($contents, $this->message->getEol() . $this->message->getEol()));
     $email['message'] = trim(str_replace($headers, '', $contents));
     $email['headers'] = trim($headers) . $this->message->getEol() . $this->message->getEol();
     if (strpos($email['headers'], 'Subject:') === false) {
         throw new Exception("Error: There is no subject in the email file '" . $filename . "'.");
     }
     if (strpos($email['headers'], 'To:') === false) {
         throw new Exception("Error: There is no recipient in the email file '" . $filename . "'.");
     }
     $subject = substr($contents, strpos($contents, 'Subject:'));
     $subject = substr($subject, 0, strpos($subject, $this->message->getEol()));
     $email['headers'] = str_replace($subject . $this->message->getEol(), '', $email['headers']);
     $email['subject'] = trim(substr($subject . $this->message->getEol(), strpos($subject, ':') + 1));
     $to = substr($contents, strpos($contents, 'To:'));
     $to = substr($to, 0, strpos($to, $this->message->getEol()));
     $email['headers'] = str_replace($to . $this->message->getEol(), '', $email['headers']);
     preg_match('/[a-zA-Z0-9\\.\\-\\_+%]+@[a-zA-Z0-9\\-\\_\\.]+\\.[a-zA-Z]{2,4}/', $to, $result);
     if (!isset($result[0])) {
         throw new Exception("Error: An valid email could not be parsed from the email file '" . $filename . "'.");
     } else {
         $email['to'] = $result[0];
     }
     return $email;
 }