Example #1
0
 /**
  * @param Event $event
  * @return null|static
  */
 public function record($event)
 {
     /* @var $message MessageInterface */
     $message = $event->message;
     $entry = Audit::getInstance()->getEntry(true);
     $mail = new AuditMail();
     $mail->entry_id = $entry->id;
     $mail->successful = $event->isSuccessful;
     $mail->from = self::convertParams($message->getFrom());
     $mail->to = self::convertParams($message->getTo());
     $mail->reply = self::convertParams($message->getReplyTo());
     $mail->cc = self::convertParams($message->getCc());
     $mail->bcc = self::convertParams($message->getBcc());
     $mail->subject = $message->getSubject();
     // add more information when message is a SwiftMailer message
     if ($message instanceof Message) {
         /* @var $swiftMessage Swift_Message */
         $swiftMessage = $message->getSwiftMessage();
         if ($swiftMessage->getContentType() == 'text/html') {
             $mail->html = $swiftMessage->getBody();
         } else {
             $mail->text = $swiftMessage->getBody();
         }
         foreach ($swiftMessage->getChildren() as $part) {
             /* @var $part Swift_Mime_MimePart */
             if ($part instanceof Swift_Mime_Attachment) {
                 continue;
             }
             $contentType = $part->getContentType();
             if ($contentType == 'text/plain') {
                 $mail->text = $part->getBody();
             } elseif ($contentType == 'text/html') {
                 $mail->html = $part->getBody();
             }
         }
     }
     $mail->data = $message->toString();
     return $mail->save(false) ? $mail : null;
 }