• 締切済み

PHPからのHTMLメール送信

PHP覚えはじめの初心者です。 下記のソースで自分宛にメールを送信すると、 会社のメールアドレスではHTMLメールとして受取れるのですが、 その他のメールアドレス(DION、ロリポップ、infoseek)、などでは 普通のテキストメールとしてソースが出てしまいます。 他にも何かヘッダーに付加したほうがいいのでしょうか? コツがありましたらご教授ください。 よろしくお願い致します。 <?php /* 送信先 */ $to = "hoge@hoge.com"; /* 題名 */ $subject = "HTML MAIL"; /* メッセージ */ $message = ' <html> <head> <title>テスト</title> </head> <body> <h1>テスト</h1> </body> </html> '; /* ヘッダー */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-2022-jp\r\n"; $headers .= "Content-Transfer-Encoding: 7bit\r\n"; $headers .= "From: hoge@hoge.com\r\n"; mail($to, $subject, $message, $headers); ?>

みんなの回答

回答No.1

私がパソコンを触り始めたころはHTMLメールはマナー違反であるなんて話があったくらいなので、どこかのメーラがHTMLをテキストとして表示するのはある意味当たり前な感じもします。 古い考え方ですけど。 解決方法はちょっと違いますが、Content-typeをmultipart/mixedとして、テキスト版とHTML版の二つのタイプを用意して送るといいかも知れません。 Outlookやベッキーなど、多く使われているメールソフトが吐くメールヘッダを真似したりすると簡単でいいんじゃないかと思います。 詳細はRFC2046や[Mail Multipart]で検索するといいんじゃないかと思います。

FOOL00
質問者

お礼

ご回答ありがとうございました。 HTMLメールを無差別に送るつもりはありませんのでご安心ください。 覚えたてですので、とりあえずPHPで作成可能な範囲を調べていました。 ご回答も参考にさせていただきます。

関連するQ&A