PHP で作成された HTML 形式の電子メール メッセージに画像を添付する方法はありますか?
メールを読んでいるときにインターネットにアクセスできない可能性があるクライアントに送信されるメールには、企業のロゴが表示されていることを確認する必要があります (ファイルをダウンロードするために、明らかにそれを持っています)。
PHP で作成された HTML 形式の電子メール メッセージに画像を添付する方法はありますか?
メールを読んでいるときにインターネットにアクセスできない可能性があるクライアントに送信されるメールには、企業のロゴが表示されていることを確認する必要があります (ファイルをダウンロードするために、明らかにそれを持っています)。
画像を埋め込むことができるPEAR Mail_Mimeパッケージを試してください。
addHTMLImage()メソッドを使用して、コンテンツ ID (cid) を渡す必要があります。これは、img の src 属性でもcid:
URL として使用する一意のテキスト文字列です。例えば:
include('Mail.php');
include "Mail/mime.php";
$crlf = "\r\n";
$hdrs = array(
'From' => 'foo@bar.org',
'Subject' => 'Mail_mime test message'
);
$mime = new Mail_mime($crlf);
//attach our image with a unique content id
$cid="mycidstring";
$mime->addHTMLImage("/path/to/myimage.gif", "image/gif", "", true, $cid);
//now we can use the content id in our message
$html = '<html><body><img src="cid:'.$cid.'"></body></html>';
$text = 'Plain text version of email';
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail');
$mail->send('person@somewhere.org', $hdrs, $body);
電子メールの添付ファイルを処理できるライブラリを使用するのがおそらく最も簡単です。たとえば、PEAR のMail_Mimeです。
独自に展開していますか、それともプレハブ クラスを使用していますか? 私自身は PHP Mailer[0] をお勧めします。また、PEAR::Mail_Mime[1] などもあり、Google が喜んで検索をお手伝いします。私は PHP Mailer を使用して、画像が埋め込まれたメッセージ [2] を何年も問題なく送信してきましたが、画像ごとにメールの帯域幅の重みが大幅に増加することに注意してください。また、Bill と 同じように、テキストのみの代替手段も利用してください。
[0] http://phpmailer.sourceforge.net/
[1] http://pear.php.net/manual/en/package.mail.mail-mime.php
[2] http://phpmailer.sourceforge.net/docs/PHPMailer/PHPMailer.html#AddEmbeddedImage
http://lists.evolt.org/archive/Week-of-Mon-20060612/183029.htmlから取得