如何预览 Zend_Mail 的 HTML 代码?
Posted
技术标签:
【中文标题】如何预览 Zend_Mail 的 HTML 代码?【英文标题】:How to preview Zend_Mail's HTML code? 【发布时间】:2012-01-09 02:17:42 【问题描述】:我正在通过 Zend_Mail 创建包含动态内容的时事通讯,但是我想针对 W3C 验证生成的 html 代码,有没有办法发送整个电子邮件代码以便我可以获取它来验证? getBodyHtml 函数没有正确返回代码,因为它在电子邮件中添加了如下内容:<tr>=0D=0A=<td width=3D"100%">=0D=0A
。
【问题讨论】:
【参考方案1】:它返回 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() 设置正文 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。
【讨论】:
以上是关于如何预览 Zend_Mail 的 HTML 代码?的主要内容,如果未能解决你的问题,请参考以下文章
在 Zend Framework 2 中使用 Zend_Mail + Zend_Mime 创建 HTML 电子邮件
使用 Zend_Mail 通过 Exchange Server 发送 SMTP 电子邮件 - 如何诊断这些错误
zend_mail 电子邮件在第 4 次尝试中被标记为垃圾邮件