Exemple #1
0
 /**
  * @return CM_Mail_Message
  */
 public function getMessage()
 {
     if (!$this->_message) {
         $this->_message = $this->getMailer()->createMessage();
         $this->_message->setCharset('utf-8');
     }
     return $this->_message;
 }
Exemple #2
0
 /**
  * @param Swift_Transport $transport
  * @param array|null      $headers
  */
 public function __construct(Swift_Transport $transport, array $headers = null)
 {
     if (null === $headers) {
         $headers = [];
     }
     $this->_headers = $headers;
     CM_Mail_Message::register();
     parent::__construct($transport);
 }
Exemple #3
0
 public function testSend()
 {
     $logger = $this->mockObject('CM_Log_Logger');
     $transport = new CM_Mail_Transport_Log($logger);
     $message = new CM_Mail_Message();
     $message->setSubject('foo')->setSender('*****@*****.**')->setReplyTo('*****@*****.**')->addTo('*****@*****.**', 'Bar')->addCc('*****@*****.**')->addCc('*****@*****.**', 'Bar2');
     $message->setBody('<p>content</p>', 'text/html');
     $message->addPart('content', 'text/plain');
     $failedRecipients = [];
     $logger->mockMethod('addMessage')->set(function ($message, $level, CM_Log_Context $context = null) {
         $this->assertSame('* foo *' . PHP_EOL . PHP_EOL . 'content' . PHP_EOL, $message);
         $this->assertSame(CM_Log_Logger::INFO, $level);
         $this->assertSame(['type' => CM_Paging_Log_Mail::getTypeStatic(), 'sender' => ['*****@*****.**' => null], 'replyTo' => ['*****@*****.**' => null], 'to' => ['*****@*****.**' => 'Bar'], 'cc' => ['*****@*****.**' => null, '*****@*****.**' => 'Bar2'], 'bcc' => null], $context->getExtra());
     });
     $numSent = $transport->send($message, $failedRecipients);
     $this->assertSame(3, $numSent);
     $this->assertSame([], $failedRecipients);
 }
Exemple #4
0
 public function testFromArray()
 {
     $message = CM_Mail_Message::fromArray(['subject' => null, 'html' => null, 'text' => null, 'sender' => null, 'from' => [], 'replyTo' => null, 'to' => null, 'cc' => null, 'bcc' => null, 'customHeaders' => []]);
     $this->assertInstanceOf('CM_Mail_Message', $message);
     $this->assertSame((new CM_Mail_Message())->toArray(), $message->toArray());
     $message = CM_Mail_Message::fromArray(['subject' => 'foo', 'html' => '<p>content</p>', 'text' => 'content', 'sender' => ['*****@*****.**' => null], 'from' => ['*****@*****.**' => null], 'replyTo' => ['*****@*****.**' => null], 'to' => ['*****@*****.**' => 'Bar'], 'cc' => ['*****@*****.**' => null, '*****@*****.**' => 'Bar2'], 'bcc' => null, 'customHeaders' => ['X-foo' => ['bar'], 'X-bar' => ['foo', 'foobar']]]);
     $expectedMessage = new CM_Mail_Message();
     $expectedMessage->setSubject('foo')->setSender('*****@*****.**')->setFrom('*****@*****.**')->setReplyTo('*****@*****.**')->addTo('*****@*****.**', 'Bar')->addCc('*****@*****.**')->addCc('*****@*****.**', 'Bar2');
     $expectedMessage->setBody('<p>content</p>', 'text/html');
     $expectedMessage->addPart('content', 'text/plain');
     $expectedMessage->getHeaders()->addTextHeader('foo', 'bar');
     $expectedMessage->getHeaders()->addTextHeader('X-foo', 'bar');
     $expectedMessage->getHeaders()->addTextHeader('X-bar', 'foo');
     $expectedMessage->getHeaders()->addTextHeader('X-bar', 'foobar');
     $this->assertInstanceOf('CM_Mail_Message', $message);
     $this->assertSame($expectedMessage->toArray(), $message->toArray());
 }
Exemple #5
0
 public function testSendWithHeaders()
 {
     $transport = $this->mockInterface('Swift_Transport')->newInstance();
     $transport->mockMethod('isStarted')->set(true);
     $message = new CM_Mail_Message('foo', 'content');
     $message->setTo('*****@*****.**');
     $message->setCc('*****@*****.**', 'bar');
     $client = new CM_Mail_Mailer($transport, ['X-foo' => 'bar']);
     $sendMethod = $transport->mockMethod('send')->set(function (CM_Mail_Message $message) {
         $this->assertSame(['X-foo' => ['bar']], $message->getCustomHeaders());
         return 2;
     });
     $failedRecipients = [];
     $this->assertSame([], $message->getCustomHeaders());
     $numSent = $client->send($message, $failedRecipients);
     $this->assertSame([], $message->getCustomHeaders());
     $this->assertSame(1, $sendMethod->getCallCount());
     $this->assertSame(2, $numSent);
     $this->assertSame([], $failedRecipients);
 }