如何预览Zend_Mail的HTML代码?

4
我正在使用Zend_Mail创建带有动态内容的通讯,但是我想对生成的HTML代码进行W3C验证,有没有办法获取整个电子邮件代码以便我可以获取并验证它? getBodyHtml函数不能正确地返回代码,因为它会添加类似于: <tr>=0D=0A=<td width=3D"100%">=0D=0A 到电子邮件中。
1个回答

6

它返回这样的HTML,是因为它使用引用可打印编码对其进行编码,这就是实际发送邮件消息的方式。

如果您想获得未经编码的内容,可以尝试使用以下方法:

$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()设置body 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。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接