mb_send_mail文字化け iPhone

このQ&Aのポイント
  • mb_send_mailを使用してメールを送信する際、iPhoneの純正メーラーでは差出人名が文字化けしてしまう問題が発生しています。
  • 他のメーラーやブラウザ、Androidのメーラーでは問題なく表示されているため、iPhone側の設定の問題かPHP側の問題か判断ができません。
  • mb_encode_mimeheader関数を使用してみたりしましたが、問題は解決しませんでした。解決策についてご教示ください。
回答を見る
  • ベストアンサー

mb_send_mail 文字化け iPhone

お世話になっております。 標題の通り、mb_send_mail でメールを送信したいのですが、iPhonoの純正メーラーで差出人名が文字化けしてしまいます。 thunderbirdやブラウザのWebメール・Androidのメーラーでは問題なく日本語で表示されています。 PHPファイルは、UTF-8です。 ざっくりですが、以下のソースで実装しています。 $mail = "hogehoge@gmail.com"; $sub = "日本語のタイトル"; $body = "日本語の本文"; $head = "From:日本語の差出人名 <info@hoge.hoge>\n"; mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail($mail, $sub, $body,$head); iPhoneでも、差出人名以外の、タイトルや本文は文字化けしていません。 ネットで調べ、症状は少し違うのですが、mb_encode_mimeheader関数を使ってみたりしたのですが、症状は変わりませんでした。 iPhone側の設定の問題なのか、php側の問題なのか良く分かりませんでした。 どうぞ、よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>mb_encode_mimeheader関数を使ってみたりしたのですが どのように使ってみたのでしょうか? mb_languageより前で実行するならば、第二引数で'iso-2022-jp'を書くのが吉だろうと思います。もちろんmb_languageより後で実行するならば第二引数は不要です(普通はこっちを利用します)。 というか、mb_encode_mimeheaderの結果がutf-8なのかiso-2022-jpなのか(それともまったく別のものか)くらいは確認してください。

RYO-88
質問者

お礼

ご回答ありがとうございます。 mb_language("Japanese"); mb_internal_encoding("UTF-8"); $mail = "hogehoge@gmail.com"; $sub = "日本語のタイトル"; $body = "日本語の本文"; $head = "From:".mb_encode_mimeheader("日本語の差出人名")." <info@hoge.hoge>\n"; mb_send_mail($mail, $sub, $body,$head); ご教授頂きました通り、mb_language より後に実行するように書きなおした所、iPhoneでも文字化けすることなく表示できました。 本当に、ありがとうございました。

関連するQ&A

  • PHPメール送信で文字化け

    PHPでメール送信フォームを用意し、「本文、件名」共に日本語で入力して送ってみたのですが送信結果が文字化けしてしまいます。「あ」と入力して送信すると「??」となってしまいます。 どなたか解決できるようアドバイスをください。 <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head> <body> <?php $mail_send = "ABCDEFG@y.co.jp"; //宛先 $mail_sub = $_POST["mail_sub"]; //件名 $mail_text= $_POST["mail_text"]; //本文 mb_send_mail($mail_send, $mail_sub, $mail_text); ?>

    • ベストアンサー
    • PHP
  • mb_send_mailでUTF8なメールを送信した際に、受け取り側で文字化けする可能性は?

    PHPスクリプトも、MySQLもUTF8で作成し、次のmb_send_mailでUTF8な メールを送信した場合、受け取り手側で日本語が文字化けするリスクは どの程度でしょうか?(特殊文字や外国語フォントは例外として、 あくまで日本語フォントが、です) 理屈上は、受け取り手のメーラーがUTF8の受信に対応していなければ NGということなのでしょうが。 $mailto = "from@example.com"; $mailsbj = "件名"; $mailbody = "本文\r\n"; //メールで扱う言語をUTF-8に設定 mb_language('uni'); mb_internal_encoding("UTF-8"); $fromname = "差出人名"; $fromname = mb_encode_mimeheader($fromname); $headers = "From: \"" . $fromname . "\" <from@example.com>" . "\n"; //メール送信 mb_send_mail($mailto, $mailsbj, $mailbody, $headers);

    • ベストアンサー
    • PHP
  • phpのmb_send_mailで携帯のみ文字化け

    PHPのmb_send_mail関数でメールを送信しています。 メールサーバーはGoogleAppsのを使っています PHPのバージョンは5.1.6 --- 下記ソース --- //日本語と内部文字エンコードの指定 mb_language('ja'); mb_internal_encoding('UTF-8'); $parameter = "-f hoge@example.co.jp";//return_path設定 // ↓コレだと携帯では文字化けしないが、Gmailへ送信すると文字化け //$subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8")); $header = ""; $header .= "From: {$subject}<{$from}>"; $message = str_replace("\r", "", $message); $res = mb_send_mail($to, $subject, $message, $header, $parameter);

    • ベストアンサー
    • PHP
  • mb_send_mail で一部文字化けします

    mb_send_mail で一部文字化けします。 URLやキーワードとかそういった文字をいれた変数です。 基本UTF8で作ってます。 mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_regex_encoding("UTF-8"); mb_detect_order("ASCII, JIS, UTF-8, EUC-JP, SJIS"); $subject = "てすと"; $to =$email; $header .= "From:admin@example.jp\n"; $header .= "Return-Path:admin@example.jp\n"; $header .= "Date:"; $header .= date("D, d M Y H:i:s O"); $body .= "\n"; $body .= "◆URL:"; $body .= $url[$count]; mb_send_mail($to,$subject,$body,$header);

    • 締切済み
    • PHP
  • PHPでmailもしくはmb_send_maiを使って文字化け

    いろいろサイトで調べてもはっきりした答えがないので質問しました。 パターン1・・・mail関数 $mail_subject = '入会申込受付のご連絡'; $mail_subject = base64_encode($mail_subject); $mail_subject = '=?ISO-2022-JP?B?' . $mail_subject . '?='; $header = "From: $sousin_email\n"; $header .= "Reply-To: $email\n"; $header .= "Date: $mail_date\n"; $header .= "X-Mailer: PHP/".phpversion()."\n"; $mail_body= "こんにちは"; mail($myemail, $mail_subject,$mail_body,$header);//ユーザーへ この場合、OutLook、Docomo、AUのメーラーでは問題なしですが、Vodafoneの3G機種(703SH)では件名・本文が文字化け パターン2・・・mb_send_mail $mail_subject = '入会申込受付のご連絡'; $mail_body= "こんにちは"; $header = "From: $sousin_email\n"; $header .= "Reply-To: $email\n"; $header .= "Date: $mail_date\n"; $header .= "X-Mailer: PHP/".phpversion()."\n"; mb_language("Japanese"); mb_internal_encoding("sjis"); mb_send_mail($myemail, $mail_subject,$mail_body,$header);//ユーザーへ この場合、本文はvodafoneも含め文字化けしないのですが、件名が「e会申込受付のご連絡」となってしまい、入という文字が表示されません。いくつかの文字がそのように化けるのですが何が化けるのかは検証はできておりません。 mailでもmb_send_mailでもいいのですが、すっきりとほどんどのメーラーで対応できる方法はあるのでしょうか? どなたかご教授お願いします。

    • 締切済み
    • PHP
  • メールのヘッダーで「ま」が文字化け

    お世話になります。 mb_send_mail関数で、メールの差出人、またはあて先で、「ま」の文字を使用すると、「~」(チルダ)に化けてしまいます。 動作環境は下記の通りです。  OS:Max OS X  PHP:4.4.1  ソースコードの文字コード:Shift_JIS 具体的なソースは下記の通りです。  mb_language("ja");  mb_internal_encoding('SJIS');  $mail_to = mb_encode_mimeheader('まみむめも',"JIS") . '<hoge@hogehoge>';  $mail_subject = 'まみむめも';  $mail_body = 'まみむめも';  $mail_header = "From: " . mb_encode_mimeheader('まみむめも',"JIS") . '<hoge@hogehoge>' . "\n";  mb_send_mail($mail_to,$mail_subject,$mail_body,$mail_header); これで送られるメールは下記の通りです。  差出人:~みむめも<hoge@hogehoge>  あて先:~みむめも<hoge@hogehoge>  件名 :~みむめも  本文 :まみむめも 本文は文字化けしないのですが、メールヘッダーに関与する項目で「ま」が「~」に文字化けしてしまいます。 お手数ですが、よろしくお願いいたします。

    • 締切済み
    • PHP
  • UTF-8フォームをsend_mailすると文字化け PHP5

    PHP5を使用していますが、 UTF-8で作成したフォームに入力された2バイト文字(日本語)をsend_mailでメールすると、本文が文字化けしてしまいます。 下記URLなども参照したのですが、実際はどのようにしてよいのか分かりません。 URL: http://www.res-system.com/item/478 このURLでは、UTF-8の対処法として「mb_language関数、mb_internal_encoding関数を、 mb_send_mail関数の前に呼び出します。」 ■送信文字がUTF-8の時の呼び出し例 mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail('test@test.com', 'タイトル', '本文','From:aaa@aaa.com'); とありますが、これでよいのでしょうか? しかし、下記URLなどには、そもそもmb_send_mailは、使用しないようにと言われています。 URL: http://hain.jp/index.php/tech-j/2007/02/13/%EF%BC%B0%EF%BC%A8%EF%BC%B0%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91 私のphp.iniなどの現設定などもここに記載できれば良いのですが、どの部分が文字化けと関連しているのか良く分かりません(教えていただければ、追記します。)。 よろしくお願いします。 キャサリン

    • 締切済み
    • PHP
  • Mb_Send_mailで文字化け

    外部のテキストファイル(EUC)のメールテンプレートを読み込んでMb_Send_mailでメール送信するプログラムを使っているのですが、どういうわけかたまに文字化けしてしまいます。(必ずというわけではありません。5回に1回くらい)必ずというわけではないので、ますますわけがわかりません。PHPのバージョンは4.3.10で、PHPのソースはSJISです。レンタルサーバ側の設定はコードコンバートなどのオプションはOFFにしていると説明されました。Mb_Convert_Encodingしてみたりいろいろしてみても状況は変わらず相変わらず「何通かに一通」文字化けします。メール内容に動的に日本語を入れているわけではないので、同じ内容が化けたり化けなかったりすることに悩んでしまっています。なにとぞヒントを戴きたく。宜しくお願いします。 function SendMail() { global $p; # FORM INPUT # メールテキストを開く if (!File_Exists(MAILTXT)) { return FALSE; } $fl = Fopen(MAILTXT, "r"); # メールタイトル(1行目)取得 $mail_sub = FGets($fl, 9182); # メール本文取得 $mail_msg = ""; $keys = Array('email'); while (!FEof($fl)) { $line = FGets($fl, 9182); foreach ($keys as $key) { $line = Str_Replace("[[$key]]", $p[$key], $line); } $mail_msg .= $line; } FClose($fl); # メールテキスト閉じる Mb_Language("Japanese"); $whom = $p['email']; #$mail_hed = "From: " . MAIL_FROM . "\nReturn-Path:" . MAIL_RETURN; /* 追加ヘッダ */ $mail_hed = "From: hogehoge.com\r\n"; $mail_hed .= "Bcc:hogehoge2.com\r\n"; $mail_hed .= "Reply-To:hogehoge3.com\r\n"; return Mb_Send_Mail($whom, $mail_sub, $mail_msg, $mail_hed); }

    • ベストアンサー
    • PHP
  • mb_send_mailでの文字化け

    PHPでメールフォームの設置中ですが、OutlookEXで受け取ったメール本文の一部が ?絅螢謄・κ(中略)? と,クエスチョンマークをはさんだ文字に化けてしまいました。 文字コードはEUCに統一し、 mb_internal_encoding("EUC"); mb_language("Japanese"); $from_name2 = i18n_mime_header_encode( i18n_convert($from_name, "JIS") ); を入れて、その後に、mb_send_mail();しています。 なにか解決のヒントがありませんでしょうか。 また、この文字化けしてしまった文字を復活する方法はないでしょうか。

    • 締切済み
    • PHP
  • mb_send_mailで文字化け

    Windows環境でmb_send_mailを使い、メール送信のテスト を行っています。 文字コードの変換周りで、いろいろ試しているのですが、 うまくいきません。 Apache + PHP (Window)  ↓ メールサーバー(RedHat)  ↓ メール受信(Window) 上記の環境で、文字化けしないで、 メール送信するには、どうしたら良いのでしょうか? (コーディング例) mb_send_mail( $address, mb_convert_encoding($subject,"EUC-JP"), mb_convert_encoding($message,"SJIS"))

    • 締切済み
    • PHP

専門家に質問してみよう