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