/** * Creates a model from the given Swift_Message instance and saves it. * @param Swift_Message $message * @param string $contentType * @param string $charset * @return EmailMessage the model. */ protected function createModel(Swift_Message $message, $contentType, $charset) { $model = new EmailMessage(); $model->setMessage($message); $model->from = implode(', ', array_keys($message->getFrom())); $model->to = implode(', ', array_keys($message->getTo())); $cc = $message->getCc(); if (is_array($cc)) { $model->cc = implode(', ', $cc); } $bcc = $message->getBcc(); if (is_array($bcc)) { $model->bcc = implode(', ', $bcc); } $model->subject = $message->getSubject(); $model->body = $message->getBody(); $model->headers = implode("\n", $message->getHeaders()->getAll()); $model->contentType = $contentType; $model->charset = $charset; $model->save(false); // need to save the model to get its id. $model->body = str_replace('{viewUrl}', $this->createViewUrl($model), $model->body); $model->save(false); return $model; }