/** * @param \Zend\Mail\Transport\TransportInterface $transport * @param \Phpro\MailManager\Service\MailMessageCreator $messageCreator * @param \Zend\Mime\Message $mailMessage */ public function it_should_send_a_mail_with_zend_view_renderer($transport, $messageCreator, $mailMessage) { $mail = $this->getRenderableMailStub(); $messageCreator->createMessage($mail)->willReturn($mailMessage); $transport->send(Argument::that(function ($message) use($mail, $mailMessage) { return $message instanceof Mandrill && $message->getTo()->has('*****@*****.**') && $message->getCc()->has('*****@*****.**') && $message->getBcc()->has('*****@*****.**') && $message->getFrom()->has('*****@*****.**') && $message->getReplyTo()->has('*****@*****.**') && $message->getSubject() == $mail->getSubject() && $message->getOptions() == ['subaccount' => 'test'] && $message->getImages() == [] && $message->getTags() == ['tag1', 'tag2'] && $message->getBody() == $mailMessage->getWrappedObject(); }))->shouldBeCalled(); $this->send($mail); }
/** * @param \Zend\Mail\Transport\TransportInterface $transport * @param \Phpro\MailManager\Service\MailMessageCreator $messageCreator * @param \Zend\Mime\Message $mailMessage */ public function it_should_send_a_mail($transport, $messageCreator, $mailMessage) { $mail = $this->getMailStub(); $messageCreator->createMessage($mail)->willReturn($mailMessage); $transport->send(Argument::that(function ($message) use($mail, $mailMessage) { return $message->getBody() == $mailMessage->getWrappedObject() && $message->getTo()->has('*****@*****.**') && $message->getCc()->has('*****@*****.**') && $message->getBcc()->has('*****@*****.**') && $message->getFrom()->has('*****@*****.**') && $message->getReplyTo()->has('*****@*****.**') && $message->getSubject() == $mail->getSubject(); }))->shouldBeCalled(); $this->send($mail); }
/** * @param ZendMailInterface $mail * * @return Mail\Message */ protected function createMessage(ZendMailInterface $mail) { $message = new Mail\Message(); $message->getHeaders()->addHeaders($mail->getHeaders()); $message->setTo($mail->getTo()); $message->setCc($mail->getCc()); $message->setBcc($mail->getBcc()); $message->setFrom($mail->getFrom()); $message->setReplyTo($mail->getReplyTo()); $message->setSubject($mail->getSubject()); $message->setBody($this->messageCreator->createMessage($mail)); return $message; }
/** * @param MandrillInterface $mail * * @return Mandrill */ protected function createMessage(MandrillInterface $mail) { $message = new MandrillMessage(); $message->getHeaders()->addHeaders($mail->getHeaders()); $message->setTo($mail->getTo()); $message->setCc($mail->getCc()); $message->setBcc($mail->getBcc()); $message->setReplyTo($mail->getReplyTo()); if ($mail->getFrom()) { $message->setFrom($mail->getFrom()); } if ($mail->getSubject()) { $message->setSubject($mail->getSubject()); } $message->setOptions($mail->getOptions()); $message->setTags($mail->getTags()); $message->setImages($mail->getImages()); if ($mail->useMandrillTemplate()) { // USe build-in template functionality in mandrill? $message->setTemplate($mail->getTemplate()); $message->setTemplateContent($mail->getTemplateContent()); $message->setGlobalVariables($mail->getGlobalVariables()); $message->setGlobalMetadata($mail->getGlobalMetadata()); if ($mail->getVariables()) { foreach ($mail->getVariables() as $recipient => $variables) { $message->setVariables($recipient, $variables); } } } else { // Use the bodyrenderer $message->setBody($this->messageCreator->createMessage($mail)); } if ($mail->getMetadata()) { foreach ($mail->getMetadata() as $recipient => $metadata) { $message->setMetadata($recipient, $metadata); } } return $message; }