public function testMessageComplete()
 {
     $result = $this->_message->setCharset('utf-8')->setTags('tag1')->setTo('*****@*****.**')->setFrom('*****@*****.**')->setReplyTo('*****@*****.**')->setCc('*****@*****.**')->setBcc('*****@*****.**')->setGlobalMergeVars(['var1' => 'value1'])->setSubject('    <a>Testo ')->setTextBody('testo<script>alert("ciao");</script>')->setHtmlBody('<a>testo</a>')->attachContent($this->getTestPdfBinary(), ['fileName' => '12.txt', 'contentType' => 'image/png'])->embed($this->getTestImagePath());
     $this->assertInstanceOf('\\nickcv\\mandrill\\Message', $result);
     $this->assertNull($this->_message->getCharset());
     $tags = $this->_message->getTags();
     $this->assertCount(1, $tags);
     $this->assertContains('tag1', $tags);
     $to = $this->_message->getTo();
     $this->assertCount(1, $to);
     $this->assertContains('*****@*****.**', $to);
     $this->assertEquals('My Application<*****@*****.**>', $this->_message->getFrom());
     $reply = $this->_message->getReplyTo();
     $this->assertCount(1, $reply);
     $this->assertContains('*****@*****.**', $reply);
     $cc = $this->_message->getCc();
     $this->assertCount(1, $cc);
     $this->assertContains('*****@*****.**', $cc);
     $bcc = $this->_message->getBcc();
     $this->assertCount(1, $bcc);
     $this->assertContains('*****@*****.**', $bcc);
     $this->assertEquals([['name' => 'var1', 'content' => 'value1']], $this->_message->getGlobalMergeVars());
     $this->assertEquals('<a>Testo', $this->_message->getSubject());
     $this->assertEquals('testo', $this->_message->getTextBody());
     $this->assertEquals('<a>testo</a>', $this->_message->getHtmlBody());
     $attachments = $this->_message->getAttachments();
     $this->assertCount(1, $attachments);
     $this->assertEquals($this->getTestPdfBinary(true), $attachments[0]['content']);
     $this->assertEquals('12.txt', $attachments[0]['name']);
     $this->assertEquals('image/png', $attachments[0]['type']);
     $embeds = $this->_message->getEmbeddedContent();
     $this->assertCount(1, $embeds);
     $this->assertEquals($this->getTestImageBinary(true), $embeds[0]['content']);
     $this->assertEquals('test.png', $embeds[0]['name']);
     $this->assertEquals('image/png', $embeds[0]['type']);
 }
Пример #2
0
 /**
  * Sends the specified message.
  *
  * @param Message $message the message to be sent
  * @return boolean whether the message is sent successfully
  */
 protected function sendMessage($message)
 {
     \Yii::info('Sending email "' . $message->getSubject() . '" to "' . implode(', ', $message->getTo()) . '"', self::LOG_CATEGORY);
     try {
         if ($this->useMandrillTemplates) {
             return $this->wasMessageSentSuccesfully($this->_mandrill->messages->sendTemplate($message->getTemplateName(), $message->getTemplateContent(), $message->getMandrillMessageArray(), $message->isAsync()));
         } else {
             return $this->wasMessageSentSuccesfully($this->_mandrill->messages->send($message->getMandrillMessageArray(), $message->isAsync()));
         }
     } catch (Mandrill_Error $e) {
         \Yii::error('A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage(), self::LOG_CATEGORY);
         return false;
     }
 }