如何预览Zend_Mail的HTML代码?

时间:2011-11-29 18:36:12

标签: html zend-framework validation zend-mail

我正在通过Zend_Mail创建一个包含动态内容的简报,但是我想要针对W3C验证生成的HTML代码,有没有办法让整个电子邮件代码被发送,以便我可以获取验证? getBodyHtml函数没有正确返回代码,因为它向电子邮件添加了诸如<tr>=0D=0A=<td width=3D"100%">=0D=0A之类的内容。

1 个答案:

答案 0 :(得分:6)

它正在返回HTML,因为它使用quoted-printable编码对其进行编码,这是在邮件消息中实际发送内容的方式。

如果您想获得没有编码的内容,可以试试这个:

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

使用Zend_Mail :: setBodyHtml()设置正文HTML时,可以指定编码。函数原型是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

如果可能,您可以在调用setBodyHtml之前验证HTML,或者使用上面显示的方法检索原始的未编码内容。否则getBodyHtml()将以其编码格式返回HTML。

相关问题