getBodyHtml() public méthode

Return Zend_Mime_Part representing body HTML
public getBodyHtml ( boolean $htmlOnly = false ) : false | Zend_Mime_Part | string
$htmlOnly boolean Whether to return the body HTML only, or the MIME part; defaults to false, the MIME part
Résultat false | Zend_Mime_Part | string
    /**
     * Generate MIME compliant message from the current configuration
     *
     * If both a text and HTML body are present, generates a
     * multipart/alternative Zend_Mime_Part containing the headers and contents
     * of each. Otherwise, uses whichever of the text or HTML parts present.
     *
     * The content part is then prepended to the list of Zend_Mime_Parts for
     * this message.
     *
     * @return void
     */
    protected function _buildBody()
    {
        if (($text = $this->_mail->getBodyText())
            && ($html = $this->_mail->getBodyHtml()))
        {
            // Generate unique boundary for multipart/alternative
            $mime = new Zend_Mime(null);
            $boundaryLine = $mime->boundaryLine($this->EOL);
            $boundaryEnd  = $mime->mimeEnd($this->EOL);

            $text->disposition = false;
            $html->disposition = false;

            $body = $boundaryLine
                  . $text->getHeaders($this->EOL)
                  . $this->EOL
                  . $text->getContent($this->EOL)
                  . $this->EOL
                  . $boundaryLine
                  . $html->getHeaders($this->EOL)
                  . $this->EOL
                  . $html->getContent($this->EOL)
                  . $this->EOL
                  . $boundaryEnd;

            $mp           = new Zend_Mime_Part($body);
            $mp->type     = Zend_Mime::MULTIPART_ALTERNATIVE;
            $mp->boundary = $mime->boundary();

            $this->_isMultipart = true;

            // Ensure first part contains text alternatives
            array_unshift($this->_parts, $mp);

            // Get headers
            $this->_headers = $this->_mail->getHeaders();
            return;
        }

        // If not multipart, then get the body
        if (false !== ($body = $this->_mail->getBodyHtml())) {
            array_unshift($this->_parts, $body);
        } elseif (false !== ($body = $this->_mail->getBodyText())) {
            array_unshift($this->_parts, $body);
        }

        if (!$body) {
            throw new Zend_Mail_Transport_Exception('No body specified');
        }

        // Get headers
        $this->_headers = $this->_mail->getHeaders();
        $headers = $body->getHeadersArray($this->EOL);
        foreach ($headers as $header) {
            // Headers in Zend_Mime_Part are kept as arrays with two elements, a
            // key and a value
            $this->_headers[$header[0]] = array($header[1]);
        }
    }
 /**
  * Send a mail using this transport
  *
  * @return void
  * @throws \Magento\Framework\Exception\MailException
  */
 public function sendMessage()
 {
     try {
         $sendpulseClient = null;
         $recipients = implode(',', $this->_message->getRecipients());
         $parameters = array('from' => $this->_message->getFrom(), 'to' => $recipients, 'subject' => quoted_printable_decode($this->_message->getSubject()), 'text' => quoted_printable_decode($this->_message->getBodyText(true)), 'html' => quoted_printable_decode($this->_message->getBodyHtml(true)));
         // TODO add attachment support
         $attachments = array();
         /*
         $attachments = array(
             'attachment' => array(
                 '/path/to/file.txt',
                 '/path/to/file.txt'
             )
         );
         */
         # Make the call to the client.
         $result = $sendpulseClient->sendMessage($this->_config->getMailgunDomain(), $parameters, $attachments);
     } catch (\Exception $e) {
         throw new \Magento\Framework\Exception\MailException(new \Magento\Framework\Phrase($e->getMessage()), $e);
     }
 }
 public function mailProvider()
 {
     $data = array();
     $mail = new Zend_Mail();
     $mail->setSubject('Some Mail to log');
     $mail->addTo('*****@*****.**');
     $mail->setBodyText('Some Text');
     $mail->setBodyHtml('<div>Some Html</div>');
     $message = 'Subject: ' . $mail->getSubject() . PHP_EOL;
     $message .= 'To: ' . implode(', ', $mail->getRecipients()) . PHP_EOL;
     $message .= 'Text: ' . $mail->getBodyText()->getContent() . PHP_EOL . PHP_EOL;
     $message .= 'Html: ' . $mail->getBodyHtml()->getContent();
     $data[] = array($mail, $message);
     return $data;
 }
Exemple #4
0
 public function getBodyHtml($htmlOnly = false)
 {
     if ($htmlOnly) {
         return parent::getBodyHtml(true);
     }
     $mime = new Zend_Mime($this->getMimeBoundary());
     $boundaryLine = $mime->boundaryLine($this->EOL);
     $boundaryEnd = $mime->mimeEnd($this->EOL);
     $html = parent::getBodyHtml();
     $text = parent::getBodyText();
     $text->disposition = false;
     $html->disposition = false;
     $body = $boundaryLine . $text->getHeaders($this->EOL) . $this->EOL . $text->getContent($this->EOL) . $this->EOL . $boundaryLine . $html->getHeaders($this->EOL) . $this->EOL . $html->getContent($this->EOL) . $this->EOL . $boundaryEnd;
     $mp = new Zend_Mime_Part($body);
     $mp->type = Zend_Mime::MULTIPART_ALTERNATIVE;
     $mp->boundary = $mime->boundary();
     return $mp;
 }
 /**
  * Send a mail using this transport
  *
  * @return void
  * @throws \Magento\Framework\Exception\MailException
  */
 public function sendMessage()
 {
     try {
         /** @var Client $client */
         $client = new Client();
         /** @var $mailgunClient Mailgun */
         $mailgunClient = new Mailgun($this->_config->getMailgunKey(), $client);
         /** @var string $recipients comma separated */
         $recipients = implode(',', $this->_message->getRecipients());
         // Assign default parameters
         $parameters = array('from' => $this->_message->getFrom(), 'to' => $recipients, 'subject' => $this->decodeZendQuotedPrintableHeader($this->_message->getSubject()), 'text' => quoted_printable_decode($this->_message->getBodyText(true)), 'html' => quoted_printable_decode($this->_message->getBodyHtml(true)));
         $parameters = $this->assignOptionalParameters($parameters);
         /** @var array $postFiles */
         $postFiles = $this->getPostFiles();
         $domain = $this->_config->getMailgunDomain();
         $result = $mailgunClient->sendMessage($domain, $parameters, $postFiles);
         $this->getMail()->setResult($result);
         $this->getMail()->setSent($this->createSent())->setSentAt($this->createSentAt())->setTransportId($this->createTransportId());
     } catch (\Exception $e) {
         throw new \Magento\Framework\Exception\MailException(new \Magento\Framework\Phrase($e->getMessage()), $e);
     }
 }
Exemple #6
0
 /**
  * Generate MIME compliant message from the current configuration
  *
  * If both a text and HTML body are present, generates a
  * multipart/alternative Zend_Mime_Part containing the headers and contents
  * of each. Otherwise, uses whichever of the text or HTML parts present.
  *
  * The content part is then prepended to the list of Zend_Mime_Parts for
  * this message.
  *
  * @return void
  */
 protected function _buildBody()
 {
     //        if (($text = $this->_mail->getBodyText())
     //            && ($html = $this->_mail->getBodyHtml()))
     //
     $text = $this->_mail->getBodyText();
     $html = $this->_mail->getBodyHtml();
     $htmlAttachments = $this->_mail->getHtmlRelatedAttachments();
     $htmlAttachmentParts = $htmlAttachments->getParts();
     $hasHtmlRelatedParts = count($htmlAttachmentParts);
     if ($text && $html || $html && $hasHtmlRelatedParts && count($this->_parts)) {
         // Generate unique boundary for multipart/alternative
         $mime = new Zend_Mime(null);
         $boundaryLine = $mime->boundaryLine($this->EOL);
         $boundaryEnd = $mime->mimeEnd($this->EOL);
         //            $text->disposition = false;
         $html->disposition = false;
         //            $body = $boundaryLine
         //                  . $text->getHeaders($this->EOL)
         //                  . $this->EOL
         //                  . $text->getContent($this->EOL)
         //                  . $this->EOL
         //                  . $boundaryLine
         //                  . $html->getHeaders($this->EOL)
         if ($hasHtmlRelatedParts) {
             $message = new Zend_Mime_Message();
             array_unshift($htmlAttachmentParts, $html);
             $message->setParts($htmlAttachmentParts);
             $htmlMime = $htmlAttachments->getMime();
             $message->setMime($htmlMime);
             $html = new Zend_Mime_Part($message->generateMessage($this->EOL, false));
             $html->boundary = $htmlMime->boundary();
             $html->type = Zend_Mime::MULTIPART_RELATED;
             $html->encoding = null;
         }
         $body = $boundaryLine;
         if ($text) {
             $text->disposition = false;
             $body .= $text->getHeaders($this->EOL) . $this->EOL . $text->getContent($this->EOL) . $this->EOL . $boundaryLine;
         }
         $body .= $html->getHeaders($this->EOL) . $this->EOL . $html->getContent($this->EOL) . $this->EOL . $boundaryEnd;
         $mp = new Zend_Mime_Part($body);
         $mp->type = Zend_Mime::MULTIPART_ALTERNATIVE;
         $mp->boundary = $mime->boundary();
         $this->_isMultipart = true;
         // Ensure first part contains text alternatives
         array_unshift($this->_parts, $mp);
         // Get headers
         $this->_headers = $this->_mail->getHeaders();
         return;
     }
     // If not multipart, then get the body
     if (false !== ($body = $this->_mail->getBodyHtml())) {
         array_unshift($this->_parts, $body);
         if ($hasHtmlRelatedParts) {
             $this->_mail->setType(Zend_Mime::MULTIPART_RELATED);
             foreach ($htmlAttachmentParts as $part) {
                 $this->_parts[] = $part;
             }
         }
     } elseif (false !== ($body = $this->_mail->getBodyText())) {
         array_unshift($this->_parts, $body);
     }
     if (!$body) {
         /**
          * @see Zend_Mail_Transport_Exception
          */
         require_once 'Zend/Mail/Transport/Exception.php';
         throw new Zend_Mail_Transport_Exception('No body specified');
     }
     // Get headers
     $this->_headers = $this->_mail->getHeaders();
     $headers = $body->getHeadersArray($this->EOL);
     foreach ($headers as $header) {
         // Headers in Zend_Mime_Part are kept as arrays with two elements, a
         // key and a value
         $this->_headers[$header[0]] = array($header[1]);
     }
 }
Exemple #7
0
 public function testGetJustBodyHtml()
 {
     $text = "<html><head></head><body><p>Some body text</p></body></html>";
     $mail = new Zend_Mail();
     $mail->setBodyHtml($text);
     $this->assertContains('Some body text', $mail->getBodyHtml(true));
 }
 /**
  * Generate MIME compliant message from the current configuration
  *
  * If both a text and HTML body are present, generates a
  * multipart/alternative Zend_Mime_Part containing the headers and contents
  * of each. Otherwise, uses whichever of the text or HTML parts present.
  *
  * The content part is then prepended to the list of Zend_Mime_Parts for
  * this message.
  *
  * @return void
  */
 protected function _buildBody()
 {
     ////////////////////////////////////////////////////////////////////////
     //                                                                    //
     // ALPHAFIELDS 2012-11-03: ADDED PGP/MIME ENCRYPTION                  //
     // USING lib/openpgp/opepgplib.php                                    //
     // AS THE Subject-header is hidden and contains a hash only in a      //
     // pgp/mime encrypted message subject-header extract the original     //
     // subject and prepend it below into the text & html parts            //
     //                                                                    //
     ////////////////////////////////////////////////////////////////////////
     // get from globals (set in tiki-setup.php)
     global $openpgplib;
     $ret = $openpgplib->getPrependOriginalSubject($this->_mail);
     $prepend_to_text = $ret[0];
     $prepend_to_html = $ret[1];
     ////////////////////////////////////////////////////////////////////////
     //                                                                    //
     // ALPHAFIELDS 2012-11-03: ..END ADD PGP/MIME ENCRYPTION PREPARATION  //
     // USING lib/openpgp/opepgplib.php                                    //
     //                                                                    //
     ////////////////////////////////////////////////////////////////////////
     if (($text = $this->_mail->getBodyText()) && ($html = $this->_mail->getBodyHtml())) {
         // Generate unique boundary for multipart/alternative
         $mime = new Zend_Mime(null);
         $boundaryLine = $mime->boundaryLine($this->EOL);
         $boundaryEnd = $mime->mimeEnd($this->EOL);
         $text->disposition = false;
         $html->disposition = false;
         $body = $boundaryLine . $text->getHeaders($this->EOL) . $this->EOL . $prepend_to_text . $text->getContent($this->EOL) . $this->EOL . $boundaryLine . $html->getHeaders($this->EOL) . $this->EOL . $prepend_to_html . $html->getContent($this->EOL) . $this->EOL . $boundaryEnd;
         $mp = new Zend_Mime_Part($body);
         $mp->type = Zend_Mime::MULTIPART_ALTERNATIVE;
         $mp->boundary = $mime->boundary();
         $this->_isMultipart = true;
         // Ensure first part contains text alternatives
         array_unshift($this->_parts, $mp);
         // Get headers
         $this->_headers = $this->_mail->getHeaders();
         return;
     }
     // If not multipart, then get the body
     if (false !== ($body = $this->_mail->getBodyHtml())) {
         ///////////////////////////////////////////////////////////////
         // ALPHAFIELDS 2012-11-03: ADDED PGP/MIME ENCRYPTION
         // USING lib/openpgp/opepgplib.php
         // PREPEND ORIG HEADER
         $body = $prepend_to_html . $body;
         // ..END ADD
         ///////////////////////////////////////////////////////////////
         array_unshift($this->_parts, $body);
     } elseif (false !== ($body = $this->_mail->getBodyText())) {
         ///////////////////////////////////////////////////////////////
         // ALPHAFIELDS 2012-11-03: ADDED PGP/MIME ENCRYPTION
         // USING lib/openpgp/opepgplib.php
         // PREPEND ORIG HEADER
         $body = $prepend_to_text . $body;
         // ..END ADD
         ///////////////////////////////////////////////////////////////
         array_unshift($this->_parts, $body);
     }
     if (!$body) {
         throw new Zend_Mail_Transport_Exception('No body specified');
     }
     // Get headers
     $this->_headers = $this->_mail->getHeaders();
     $headers = $body->getHeadersArray($this->EOL);
     foreach ($headers as $header) {
         // Headers in Zend_Mime_Part are kept as arrays with two elements, a
         // key and a value
         $this->_headers[$header[0]] = array($header[1]);
     }
 }
Exemple #9
0
 public function format(Zend_Mail $mail)
 {
     return sprintf("Subject: %s\nTo: %s\nText: %s\n\nHtml: %s", $mail->getSubject(), implode(', ', $mail->getRecipients()), $mail->getBodyText()->getContent(), $mail->getBodyHtml()->getContent());
 }
Exemple #10
0
 /**
  * Sobrescrita de Método para Renderização da Visualização
  * @param boolean $htmlOnly Renderização do Corpo do Email
  * @param boolean $render   Renderização da Visualização Anexada
  * @return false|Zend_Mime_Part|string Resultado do Método na Superclasse
  */
 public function getBodyHtml($htmlOnly = false, $render = true)
 {
     /* BodyHtml Possivelmente Objeto */
     if ($render && $this->_bodyHtml === false) {
         $this->render();
     }
     return parent::getBodyHtml($htmlOnly);
 }