2011-11-29 31 views
4

我正在通過Zend_Mail創建一個包含動態內容的新聞稿,但是我想驗證生成的HTML代碼對抗W3C,有沒有辦法讓整個電子郵件代碼發送,以便我可以抓住它驗證? getBodyHtml函數沒有正確地返回代碼,因爲它在電子郵件中添加了如下內容:<tr>=0D=0A=<td width=3D"100%">=0D=0A如何預覽Zend_Mail的HTML代碼?

回答

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 
} 

當你定身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

如果可能,您可以在調用setBodyHtml之前驗證HTML ,或者使用上面所示的方法檢索未編碼的原始內容。否則,getBodyHtml()將以其編碼格式返回HTML。

+0

不錯,那段代碼像魅力一樣工作,謝謝! –