Beispiel #1
0
    public function testGetMime()
    {
        $msg = new Mime\Message();  // No Parts
        $m = $msg->getMime();
        $this->assertType('\Zend\Mime\Mime', $m);

        $msg = new Mime\Message();  // No Parts
        $mime = new Mime\Mime('1234');
        $msg->setMime($mime);
        $m2 = $msg->getMime();
        $this->assertType('\Zend\Mime\Mime', $m2);
        $this->assertEquals('1234', $m2->boundary());
    }
Beispiel #2
0
 /**
  * Send a mail using this transport
  *
  * @param  \Zend\Mail\Mail $mail
  * @access public
  * @return void
  * @throws \Zend\Mail\Transport\Exception if mail is empty
  */
 public function send(\Zend\Mail\Mail $mail)
 {
     $this->_isMultipart = false;
     $this->_mail = $mail;
     $this->_parts = $mail->getParts();
     $mime = $mail->getMime();
     // Build body content
     $this->_buildBody();
     // Determine number of parts and boundary
     $count = count($this->_parts);
     $boundary = null;
     if ($count < 1) {
         throw new Exception('Empty mail cannot be sent');
     }
     if ($count > 1) {
         // Multipart message; create new MIME object and boundary
         $mime = new Mime\Mime($this->_mail->getMimeBoundary());
         $boundary = $mime->boundary();
     } elseif ($this->_isMultipart) {
         // multipart/alternative -- grab boundary
         $boundary = $this->_parts[0]->boundary;
     }
     // Determine recipients, and prepare headers
     $this->recipients = implode(',', $mail->getRecipients());
     $this->_prepareHeaders($this->_getHeaders($boundary));
     // Create message body
     // This is done so that the same \Zend\Mail\Mail object can be used in
     // multiple transports
     $message = new Mime\Message();
     $message->setParts($this->_parts);
     $message->setMime($mime);
     $this->body = $message->generateMessage($this->EOL);
     // Send to transport!
     $this->_sendMail();
 }
Beispiel #3
0
 public function testRetrievingBodyTextFromMessageWithMultiPartMimeBodyReturnsMimeSerialization()
 {
     $mime = new Mime('foo-bar');
     $text = new MimePart('foo');
     $text->type = 'text/plain';
     $html = new MimePart('<b>foo</b>');
     $html->type = 'text/html';
     $body = new MimeMessage();
     $body->setMime($mime);
     $body->addPart($text);
     $body->addPart($html);
     $this->message->setBody($body);
     $text = $this->message->getBodyText();
     $this->assertEquals($body->generateMessage(), $text);
     $this->assertContains('--foo-bar', $text);
     $this->assertContains('--foo-bar--', $text);
     $this->assertContains('Content-Type: text/plain', $text);
     $this->assertContains('Content-Type: text/html', $text);
 }