/** * @return ViewModel */ public function previewAction() { /** @var QueueItem $queueItem */ $queueItem = $this->queueItemRepository->getOneBySecurityKey($this->params('securityKey')); if (!$queueItem) { return $this->redirect()->toRoute(static::ERROR_ROUTE); } $this->prepareMessageBuilder($queueItem); $message = $queueItem->getMessage(); $template = $message->getCampaign()->getTemplate(); $previewData = $this->messageBuilder->getBody($message->getBody(), $template->getBody()); $this->layout('layout/empty'); return new ViewModel(['preview' => $previewData]); }
/** * @param EntityMessage $message * * @return string */ private function getPreviewData(EntityMessage $message) { $campaign = $message->getCampaign(); $template = $campaign->getTemplate(); $this->messageBuilder->setEntityVars($message, $campaign, $template); return $this->messageBuilder->getBody($message->getBody(), $template->getBody()); }
/** * @param QueueItem $queueItem */ protected function safeSend(QueueItem $queueItem) { $now = new \DateTime("now"); $queueItem->setAckedAt($now); $this->saveQueueItem($queueItem); $message = $queueItem->getMessage(); $campaign = $message->getCampaign(); $template = $campaign->getTemplate(); $subscriber = $queueItem->getSubscriber(); $this->messageBuilder->setEntityVars($message, $campaign, $template, $subscriber, $queueItem); $headers = $this->messageBuilder->getHeaders(); $messageBody = $this->messageBuilder->getBody($message->getBody(), $template->getBody()); $subject = $this->messageBuilder->template($message->getSubject()); $this->mail($subscriber, $campaign, $subject, $messageBody, $headers); $queueItem->setSentAt($now); $this->saveQueueItem($queueItem); }