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