/** * Create an EmailMessage with serialized data * * @param string $subjectLine * @param string $template * @param array $data * * @return EmailMessageManager */ public function createEmailMessage($subjectLine, $template, $data) { $serializedData = $this->serializer->serialize($data, 'json'); $message = new EmailMessage($subjectLine, $template); $message->setJsonData($serializedData); return $message; }
/** * @Route("/test/{type}") */ public function testAction($type) { $message = new EmailMessage('Test', sprintf('Test:test.%s', $type)); $message->setId(-1); $template = sprintf('ForexEmailBundle:Test:test.%s.twig', $type); return $this->render($template, $this->getForexEmailSender()->serializeMessage($message)); }
public function serializeMessage(EmailMessage $message) { // Make the email being sent to available to the templates $data = array_merge($message->getData(), array('to' => array(array('email' => $message->getEmail(), 'type' => 'to')), 'subject' => $message->getSubjectLine(), '_message_id' => $message->getId(), 'headers' => array())); $data['html'] = $this->templating->render(sprintf('ForexEmailBundle:%s.html.twig', $message->getTemplate()), $data); $data['text'] = $this->templating->render(sprintf('ForexEmailBundle:%s.text.twig', $message->getTemplate()), $data); $data['from_email'] = array_key_exists('from', $data) ? $data['from'] : '*****@*****.**'; if ($message->getReplyTo()) { $data['headers']['Reply-To'] = $message->getReplyTo(); } if ($message->getCcEmail()) { $data['to'][] = array('email' => $message->getCcEmail(), 'type' => 'cc'); } if ($message->getBccEmail()) { $data['to'][] = array('email' => $message->getBccEmail(), 'type' => 'bcc'); } return $data; }
private function persistMessage(EmailMessage $message) { $this->logger->debug(sprintf('EmailMessage - Creating Message - %s %s', $message->getTemplate(), $message->getJsonData())); $this->em->persist($message); }