1

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 マルチパート メッセージの作成方法を制御することは可能ですか?

4

0 に答える 0