Zend_Mail を介して動的コンテンツを含むニュースレターを作成していますが、生成された HTML コードを W3C に対して検証したいのですが、電子メール コード全体を送信して検証できるようにする方法はありますか? <tr>=0D=0A=<td width=3D"100%">=0D=0A
getBodyHtml 関数は、電子メールに次のようなものを追加するため、コードを適切に返しません。
1199 次
1 に答える
6
コンテンツがメールメッセージで実際に送信される方法である quoted-printable エンコーディングを使用してエンコードしているため、そのような 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 をエンコードされた形式で返します。
于 2011-11-29T18:47:30.490 に答える