예제 #1
0
 /**
  * @param UniqueOutboundMessage $uniqueMessage
  * @param string $status
  * @return MailSystemResultMock
  */
 protected function mockResult(UniqueOutboundMessage $uniqueMessage, $status)
 {
     $messagesStatus = [];
     $recipients = $uniqueMessage->getMessage()->getRecipients();
     foreach ($recipients as $recipient) {
         $messagesStatus[] = new MailSystemMessageStatus($this->generateUUID(), $status, '', $recipient);
     }
     return new MailSystemResultMock($messagesStatus);
 }
예제 #2
0
 /**
  * @param UniqueOutboundMessage $uniqueMessage
  * @param DateTime|null $sendAt
  * @return MailSystemResult
  * @throws MailSystemException
  */
 protected function sendMessageToMandrill(UniqueOutboundMessage $uniqueMessage, DateTime $sendAt = null)
 {
     $template = $uniqueMessage->getMessage()->getTemplate();
     $rawMessage = $this->messageConverter->convertToRawMessage($uniqueMessage);
     $this->transformRawMessage($rawMessage);
     $this->recipientEnforcer->tryTransformRawMessage($rawMessage);
     if ($template === null) {
         $mandrillResult = $this->sendRawMessage($rawMessage, $sendAt);
     } else {
         $mandrillResult = $this->sendRawTemplateMessage($rawMessage, $template, $sendAt);
     }
     $this->recipientEnforcer->tryTransformMandrillResult($mandrillResult, $uniqueMessage->getMessage()->getRecipients());
     return new MailSystemResult($mandrillResult, $uniqueMessage);
 }
예제 #3
0
 /**
  * @param UniqueOutboundMessage $uniqueMessage
  * @return array
  */
 protected function getRawHeaders(UniqueOutboundMessage $uniqueMessage)
 {
     $message = $uniqueMessage->getMessage();
     $headers = [];
     $headers['Message-ID'] = $uniqueMessage->getMessageId();
     if ($message->getReplyTo() !== null) {
         $headers['Reply-To'] = $message->getReplyTo();
     }
     if ($message->getReferences() !== null) {
         $headers['References'] = $message->getReferences();
     }
     if ($message->getInReplyTo() !== null) {
         $headers['In-Reply-To'] = $message->getInReplyTo();
     }
     $headers = array_merge($headers, $message->getCustomHeaders());
     return $headers;
 }
예제 #4
0
 /**
  * @param array $mandrillResult
  * @param UniqueOutboundMessage $uniqueMessage
  */
 public function __construct(array $mandrillResult, UniqueOutboundMessage $uniqueMessage)
 {
     $recipients = $uniqueMessage->getMessage()->getRecipients();
     $this->mailSystemMessagesStatus = $this->createMailSystemMessagesStatus($mandrillResult, $recipients);
 }
 /**
  * @param UniqueOutboundMessage $uniqueMessage
  * @param string $mailSystemName
  * @param DateTime|null $scheduledSendTime
  */
 public function __construct(UniqueOutboundMessage $uniqueMessage, $mailSystemName, DateTime $scheduledSendTime = null)
 {
     $message = $uniqueMessage->getMessage();
     $this->messageId = $uniqueMessage->getMessageId();
     $this->inReplyTo = $message->getInReplyTo();
     $this->references = $message->getReferences();
     $this->recipients = $message->getRecipients();
     $this->replyTo = $message->getReplyTo();
     $this->fromEmail = $message->getFromEmail();
     $this->fromName = $message->getFromName();
     $this->html = $message->getHtml();
     $this->text = $message->getText();
     $this->template = $message->getTemplate();
     $this->subject = $message->getSubject();
     $this->customHeaders = $message->getCustomHeaders();
     $this->mailSystem = $mailSystemName;
     $this->createdAt = new DateTime('now');
     $this->messagesStatus = new ArrayCollection();
     $this->scheduledSendTime = $scheduledSendTime;
     $this->responses = new ArrayCollection();
 }