getMimeBoundary() public method

Return the boundary string used for the message
public getMimeBoundary ( ) : string
return string
コード例 #1
0
ファイル: Abstract.php プロジェクト: jorgenils/zend-framework
 /**
  * Send a mail using this transport
  * 
  * @param Zend_Mail $mail 
  * @access public
  * @return void
  * @throws Zend_Mail_Transport_Exception if mail is empty
  */
 public function send(Zend_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 Zend_Mail_Transport_Exception('Empty mail cannot be sent');
     }
     if ($count > 1) {
         // Multipart message; create new MIME object and boundary
         $mime = new Zend_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 object can be used in
     // multiple transports
     $message = new Zend_Mime_Message();
     $message->setParts($this->_parts);
     $message->setMime($mime);
     $this->body = $message->generateMessage($this->EOL);
     // Send to transport!
     $this->_sendMail();
 }
コード例 #2
0
 /**
  * Send a mail using this transport
  *
  * @param  OpenPGP_Zend_Mail $mail
  * @access public
  * @return void
  * @throws Zend_Mail_Transport_Exception if mail is empty
  */
 public function send(OpenPGP_Zend_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 Zend_Mail_Transport_Exception('Empty mail cannot be sent');
     }
     if ($count > 1) {
         // Multipart message; create new MIME object and boundary
         $mime = new Zend_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 OpenPGP_Zend_Mail object can be used in
     // multiple transports
     $message = new Zend_Mime_Message();
     $message->setParts($this->_parts);
     $message->setMime($mime);
     $this->body = $message->generateMessage($this->EOL);
     ////////////////////////////////////////////////////////
     //                                                    //
     // ALPHAFIELDS 2012-11-03: ADDED PGP/MIME ENCRYPTION  //
     // USING lib/openpgp/opepgplib.php                    //
     //                                                    //
     ////////////////////////////////////////////////////////
     // get from globals (set in tiki-setup.php)
     global $openpgplib;
     $pgpmime_msg = $openpgplib->prepareEncryptWithZendMail($this->header, $this->body, $mail->getRecipients());
     $this->header = $pgpmime_msg[0];
     // set pgp/mime headers from result array
     $this->body = $pgpmime_msg[1];
     // set pgp/mime encrypted message body from result array
     ////////////////////////////////////////////////////////
     //                                                    //
     // ALPHAFIELDS 2012-11-03: ..END PGP/MIME ENCRYPTION  //
     //                                                    //
     ////////////////////////////////////////////////////////
     // Send to transport!
     $this->_sendMail();
 }
コード例 #3
0
ファイル: MailTest.php プロジェクト: jorgenils/zend-framework
 /**
  * check if attachment handling works
  *
  */
 public function testAttachment()
 {
     $mail = new Zend_Mail();
     $mail->setBodyText('My Nice Test Text');
     $mail->addTo('*****@*****.**', 'Test Recipient');
     $mail->setFrom('*****@*****.**', 'Test Sender');
     $mail->setSubject('Test: Attachment Test with Zend_Mail');
     $at = $mail->addAttachment('abcdefghijklmnopqrstuvexyz');
     $at->type = 'image/gif';
     $at->id = 12;
     $at->filename = 'test.gif';
     $mock = new Zend_Mail_Transport_Mock();
     $mail->send($mock);
     // now check what was generated by Zend_Mail.
     // first the mail headers:
     $this->assertContains('Content-Type: multipart/mixed', $mock->header);
     $boundary = $mail->getMimeBoundary();
     $this->assertContains('boundary="' . $boundary . '"', $mock->header);
     $this->assertContains('MIME-Version: 1.0', $mock->header);
     // check body
     // search for first boundary
     $p1 = strpos($mock->body, "--{$boundary}\n");
     $this->assertNotEquals(null, $p1);
     // cut out first (Text) part
     $start1 = $p1 + 3 + strlen($boundary);
     $p2 = strpos($mock->body, "--{$boundary}\n", $start1);
     $this->assertNotEquals(null, $p2);
     $partBody1 = substr($mock->body, $start1, $p2 - $start1);
     $this->assertContains('Content-Type: text/plain', $partBody1);
     $this->assertContains('My Nice Test Text', $partBody1);
     // check second (HTML) part
     // search for end boundary
     $start2 = $p2 + 3 + strlen($boundary);
     $p3 = strpos($mock->body, "--{$boundary}--");
     $this->assertNotEquals(null, $p3);
     $partBody2 = substr($mock->body, $start2, $p3 - $start2);
     $this->assertContains('Content-Type: image/gif', $partBody2);
     $this->assertContains('Content-Transfer-Encoding: base64', $partBody2);
     $this->assertContains('Content-ID: <12>', $partBody2);
 }