HTML 形式のテキスト、プレーン テキストの代替、HTML で参照されるインライン画像を含む Zend_Mail クラスを使用して電子メールを送信しようとしています。画像を添付ファイルとしてではなく、埋め込んで表示したいだけです。
私の現在のコードは次のとおりです。
$mail = new Zend_Mail('UTF-8');
$mail->addTo($recipient);
$mail->setFrom($sender);
$mail->setSubject($subject);
$mail->setBodyText($text);
$mail->setBodyHtml($html);
$images = array('name1','name2','name3');
foreach ($images as $i){
$filename = Zend_Registry::get('config')->path->localimages . '/' . $i . '.png';
$at = new Zend_Mime_Part(file_get_contents($filename));
$at->filename = $i . '.png';
$at->type = 'image/png';
$at->disposition = Zend_Mime::DISPOSITION_INLINE;
$at->encoding = Zend_Mime::ENCODING_BASE64;
$at->id = $i;
$mail->addPart($at);
}
$mail->send();
setBodyText() と setBodyHtml() の両方が使用されるため、Zend はマルチパート/代替 MIME メッセージを自動的に生成します。画像は HTML コードに埋め込まれて表示されますが、添付ファイルとしても表示されます。
画像が埋め込まれたものだけを表示したい。そのためには、テキストと html を multipart/alternative タイプの MIME パート内に配置し、電子メール全体のタイプを multipart/related に設定する必要があることを理解しています。Zend 1.10 でこれを達成するにはどうすればよいですか? ZF2 では、MIME マルチパート メッセージを作成し、そのメッセージに対して setBody() を使用するだけで済みますが、Zend 1.10 では、setBodyText() または setBodyHtml() のいずれかを設定する必要があります。MIME マルチパート メッセージの作成方法を制御することは可能ですか?