Как просмотреть HTML-код Zend_Mail? - PullRequest
4 голосов
/ 29 ноября 2011

Я создаю новостную рассылку с динамическим контентом через Zend_Mail, однако я хочу проверить сгенерированный HTML-код в W3C, есть ли способ получить весь почтовый код для отправки, чтобы я мог получить его для проверки?функция getBodyHtml не возвращает код должным образом, так как добавляет в письмо такие вещи, как: <tr>=0D=0A=<td width=3D"100%">=0D=0A.

1 Ответ

6 голосов
/ 29 ноября 2011

Он возвращает HTML таким образом, потому что он кодирует его, используя кодировку для печати в кавычках, то есть то, как содержимое фактически отправляется в почтовом сообщении.

Если вы хотите получить контент без кодировки, вы можете попробовать это:

$part = $mail->getBodyHtml();   // returns Zend_Mime_Part
if ($part !== false && $part instanceof Zend_Mime_Part) {
    $html = $part->getRawContent(); // returns the raw, unencoded content
}

Когда вы устанавливаете тело HTML с помощью Zend_Mail :: setBodyHtml (), вы можете указать кодировку. Прототип функции: setBodyHtml($html, $charset = null, $encoding = Zend_Mime::ENCODING_QUOTEDPRINTABLE)

Допустимые значения:

  • Zend_Mime :: ENCODING_7BIT
  • Zend_Mime :: ENCODING_8BIT
  • Zend_Mime :: ENCODING_QUOTEDPRINTABLE (по умолчанию)
  • Zend_Mime :: ENCODING_BASE64

Вы можете либо проверить HTML, прежде чем вызывать setBodyHtml, если это возможно, либо получить необработанный, незакодированный контент, используя метод, показанный выше. В противном случае getBodyHtml () вернет HTML в его закодированном формате.

...