【问题标题】:How to preview Zend_Mail's HTML code?如何预览 Zend_Mail 的 HTML 代码?
【发布时间】:2012-01-09 02:17:42
【问题描述】:

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

【问题讨论】:

    标签: html zend-framework validation zend-mail


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2012-05-11
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2022-01-03
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多