http://pentan.info/php/sample/html_mail.html

上記サイトをのmail関数を使う版でHTMLメールをPHPから送信しています。
サンダーバード等のメーラーでは問題なく表示されるのですが、GmailのWEB版やスマホアプリなどでは閲覧が出来ません。

正常に表示出来るようにするには、何かが足りないのでしょうか。
宜しくお願い致します。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2016/03/04 16:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:xzzzxwer No.1

回答回数93ベストアンサー獲得回数10

ポイント50pt

うーん基本は間違っていないと思う。




<?php
// 複数の受信者を指定
$to = 'aidan@example.com' . ', '; // カンマに注意
$to .= 'wez@example.com';

// 表題
$subject = 'Birthday Reminders for August';

// 本文
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

// HTML メールを送信するには Content-type ヘッダが必須
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// 追加のヘッダ
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// 送信する
mail($to, $subject, $message, $headers);
?>



HTML などの複雑な形式のメールを送信する場合は、PEAR パッケージ » PEAR::Mail_Mime を利用することも考えてみてはどうでしょう。

他3件のコメントを見る
id:braahmaNa

ホントだ…
ソース中のコメントじゃなくてS-JISどうのこうのの返信コメントか…
最早スクリプトじゃないかと疑いたくなってくるな…w

2016/02/28 00:27:19
id:braahmaNa

見ればみるほど凄いな…
多分書いたのが
「うーん基本は間違っていないと思う。」
「も考えてみてはどうでしょう。」
だけだ…(最後の日本語もマニュアルの注意の文末変えてるだけだから)
こういう人ってよくいるんだろうか…?

2016/02/28 03:15:18
id:derisionist No.2

回答回数9ベストアンサー獲得回数3

ポイント50pt

最後のboundaryに追加のハイフン2つが付いてないから、とかね。
gmail doesn’t like multipart/alternative MIME type? - email php | Ask MetaFilter

id:a-kuma3

それはないでしょう。
2008年の時点では、そうだったかもしれませんが、現在 受け取ってる はてなブログからの「購読中のブログ更新」のメールや Twitter からのメールなんかが、multipart な HTML メールで boundary の末尾にハイフンはついてませんけれど、正常に見ることができてます。

2016/02/28 02:55:34
id:a-kuma3

あっ、last line か。

2016/02/28 03:01:33
  • id:braahmaNa
    回答者何がしたいの?
    ポイント狙い?
    コードはphpのmail関数のサンプルまんま貼っただけなんだけど
    http://php.net/manual/ja/function.mail.php
    んで何で本文真っ白なのにエンコーディング変えろとか言ってんだ?
    文字化けしてるならまだしもま真っ白って表示自体されてねえだろ…(第一半角文字しか使ってねーし…)
    何が、基本的には、だ…
    時間有ったら答えるし、誰かマトモな人が回答してくれないならキャンセルした方が良いよコレ
  • id:braahmaNa
    一番簡単なのはgmailで正常表示されてるHTMLメールのヘッダそのまま使う事だと思う。

    https://support.google.com/mail/answer/22454?hl=ja
  • id:a-kuma3
    ヘッダの、もしくは、ヘッダだけの問題じゃない、に一票。
  • id:braahmaNa
    ヘッダだけの問題じゃない、はズルいですよw
    実際書いたプログラム開示してくれて無いから確かに分からないですけど…
    マルチパートの順番とか抜けも考えましたけど、サンプル通りに書いてるなら大丈夫な気はしますけどねえ…
  • id:a-kuma3
    ・質問で参考にしたと言ってるコードをそのまま(といっても、$body_html は、ちょっとだけ HTML っぽいやつにする)を実行して、Gmail で内容が正しく見られるかどうか
    ・Gmail で内容が見られない、という問題が再現できて、公開できる範囲のソース
    ・Gmail で受信したメールのソース

    という辺りを示してもらえれば、もう少しマシなコメントができそうな気はする。

    頭の中をよぎってる問題の所在。
    ・本文に設定している HTML の内容がよくない
    ・添付ファイルをつけてる
  • id:braahmaNa
    すいません、デバッグ手順まではスマホで書く気起きませんでしたw

    ここまでやってくれたら行けそうですよね。
    HTML自体は盲点でした…
    コレは有りそう…

    んでコレはあくまで私見かつ推測なんですけど、添付は無い気がします…
    (質問の仕方や返信内容から見るに
  • id:a-kuma3
    あくまで、可能性のひとつってことで >添付ファイル
  • id:braahmaNa
    ですですね。
    材料無さ過ぎですし。

    取り敢えずマトモな答え出して気持ちよく終わりたいです=3

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません