/** * @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); }
/** * @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); }
/** * @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; }
/** * @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(); }