如何预览 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 次尝试中被标记为垃圾邮件

使用 Zend_Mail 获取邮件源

如何使用 Zend_Mail、sendmail 和 localhost 发送电子邮件?

Zend_Mail 发送邮件失败,输出消息:连接超时