• ベストアンサー

メール受信 件名が文字化け

PHPでメールを送信するプログラムを作成し、メールを受信した時、件名だけが日本語の部分だけ文字化けしてしまいます。本文は文字化けされずに表示されます。原因がわからず困っています。何か対応法はないでしょうか? 環境は OS:WinME PHP:PHP4.2.3WIN版 メールソフト:Beckyk 2.05.06 メール送信のプログラムは下記の通りです mail($mail, "件名 JONES0901です", "本文内容", "From: webmaster@*****.com\r\n" ."Reply-To: webmaster@*****.com\r\n" ."X-Mailer: PHP/" . phpversion());

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

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

  • ベストアンサー
  • duckling
  • ベストアンサー率47% (88/185)
回答No.3

$subject = i18n_mime_header_encode(i18n_convert($subject, "JIS")); このあと、メール関数で送信してみてください。

その他の回答 (2)

noname#101981
noname#101981
回答No.2

参考URLにある、漢字コード変換 Jcode.phps を利用すれば文字コードの変換ができます。 件名の文字コードを iso-2022-jp に変換すれば文字化けしませんよ。

参考URL:
http://www.spencernetwork.org/
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

mail関数はマルチバイト対応ではないので日本語を使うのはまずいと思います。ただ、mb_send_mailは標準ではなかったように思いますので調べてみて下さい。

参考URL:
http://www.itboost.co.jp/phptips/view.php?fCID=19

関連するQ&A

  • メール件名の文字化け

    Windows live メールにしてから、MLにメールを送信すると、件名が文字化けしてのります。 本文は文字化けしないのですが、件名が文字化けしないようにするのにはどうしたらいいのでしょうか?

  • mail()でメール送信で、特定のメーラーの受信のみ件名が文字化け

    PHPでメール配信プログラムを作っております。 配信テストを行なったのですが、特定のメーラーで件名が文字化けしてしまう現象に見舞われしてしまい、対処法を探しております。 ■テストメーラー 1、OutlookExpress 2、EdMax 3、Thunderbird ■ソース(一部抜粋) mb_language('Japanese'); mb_internal_encoding("SJIS"); //1 $subject = mb_encode_mimeheader($subject); //2 $subject = mb_convert_encoding($subject,"JIS","SJIS"); $send_body = mb_convert_encoding($send_body,"JIS","SJIS"); $header = "From: $fronmail.\n"; $header .= "Return-path: $return\n"; $header .= "Reply-To: $fronmail.\n"; //3 $header .= "Subject: $subject\n"; $header .= "Message-ID: {$MessageID}\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; $header .= "Content-Transfer-Encoding: 7bit\n"; //4 $header .= "Content-Transfer-Encoding: base64\n"; $header .= "X-Mailer:PHP/".phpversion(); $chk_mail = mail($to_email,$subject,$send_body,$header); ■設定値 $body = $subject = "日本語テスト"; メールアドレスはプロバイダなどが発行しているもの ■現象 ソースのままだと1、2は件名は文字化けせず、3は文字化け(???{????? ※?はひし形に囲まれた?です)します。 それぞれコメントアウトを外したり切り替えたりするのですが、1、2も件名が文字化けになったりします。 3は基本的にどのコメントアウトを有効にしても文字化けのままです。 $subjectに関しては、mail関数のものが優先のようでして、試しに空にしてみたのですが、件名も空のままでした。 何故この形式を取っているかというと、半角カナを使いたいが為でして、mb_send_mailだと半角カナが使えなかったような気がしてmailを使っております。 あと、popenで直接コマンドを打つという手もありそうですが、sendmailではなくpostfixなのですがpostfixでコマンドをという手段を探した方が良いのでしょうか? 出来ればmailを使って文字化けもしない方向を希望なのですが、それが駄目なら他の手段など誘導していただければ幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • メールの件名が文字化けしているときはどうやって直せばいいのでしょうか?

    メールの件名が文字化けしているときはどうやって直せばいいのでしょうか? WordPressに登録したとき、パスワードを知らせるメールが送られてきました。 しかしその件名が文字化けしています。 IEだったら文字コードを切り替えれば直るのですが、こういう送信されたメールの件名の文字コードを修正する方法はありますか?

  • メールの件名の文字化け!

    私の職場にWindowsとMacの両方のマシンがあります。 MacからWindowsにメールを送ると、受信したメールの件名の文字が化けています。 差出人や件名、送信日時等の欄は全然問題ないのですが、本文の上のところに表示される件名が化けています。 Macは数台あり、そういった文字化けするのとしないのとあります。初期設定等確認しましたが問題があるようにはみえません。 何かご存じの方がみえたら、教えて下さい。

  • utf-8でメールを送信すると件名が文字化け

    Perlでメールフォームを作成しております。 今後のこともあってUTF-8でファイル、HTMLの出力をおこなっております。 なにかとutf-8便利でさくさくと問題なく作成していたのですがメール送信の肝心な部分で問題が出てきました。 送信先はiモードで506iです。 メールのヘッダーを以下のようにして送ると件名の日本語がどうしても文字化けします。本文はしません。アウトルックエクスプレス6.0では文字化けしません。YahooWebメールは文字化けしました。 Reply-To: $adminmail Errors-To: $adminmail To: $user_mail From: $adminmail Subject: $subject content-transfer-encoding: 7bit Content-type: text/plain; charset=utf-8 ・携帯がutf-8に対応していないメーラーなんだろうと思いますがなぜ本文は文字化けしないんでしょうか。 ・件名を文字化けをしないようにする方法はありますでしょうか?(ファイルの保存形式はutf-8を変えずに)

    • ベストアンサー
    • CGI
  • メールの文字化けについて

    お世話になっております。 phpを利用し、Postfixにてメールを送信するプログラムを作成しました。 しかしながら、下記プログラムではタイトルに"日本語"を入れた場合、 "ThunderBird"でメールを受け取ると、 "◆◆◆◆◆◆◆◆◆◆"のように文字が化けてしまいます(本文は文字化けしません。)。 しかし、YahooWebメールではタイトル・本文に関わらず正常に文字が出力されます。 どの部分を修正すれば、日本語タイトル文を 文字化けさせず表示させることができるでしょうか? サーバの文字コードは"EUC"となっています。 ご教授のほどよろしくお願いします。 // メール送信元を指定 $from = "mail"; $title = "メール届きましたか?"; // BCC値を決定します。 // メール本文を組み立てます。 $headers .= "From: $from\r\n"; $headers .= "Bcc: aiai@ngmail.com\r\n"; $headers .= ('Content-Type:text/html; charset=EUC-JP'); // 本文の値を決定します。 //$title2 = "=?iso-2022-jp?B?".base64_encode($title)."?="; $naiyou2 = "仮ユーザID:$name\n 仮パス:$yoyakusha<br> メールアドレスfrom:$from<br> メールアドレスto:$email<br> @ペイにて登録したユーザID:$title\n"; mail($email, $title, $naiyou2, $headers);

    • 締切済み
    • PHP
  • Windowsメールの「件名」の文字化け

    Windowsメールの「件名」が文字化けしてしまいます。 差出人や本文は大丈夫なのですが、「件名」が読みにくいので直す方法があればうれしいです。

  • 受信メールのsubjectが文字化けします。

    PHP5+Windowsを使用してWeb上からメールの送受信が行えるプログラムを作成しようとしています。 本文と送信元アドレスなどは、文字化けを起こすことなく表示されるのですが、subjectは全て”?”と表示されてしまいます。 文字化けせずに表示させるにはどうすればよいのでしょうか? ご教示よろしくお願いします。

    • 締切済み
    • PHP
  • mail()について。Outlookで文字化けする

    phpの組み込み関数mail()を使用して自動メール送信機能を作っております。 Yahoo!メールでは正常に受信出来るのですが、Outlook(Express)では文字化けしてしまいます。 出来るだけ万能に受信させたいのですが、どのように対処すれば良いのでしょうか? ちなみに、以下、現状のソースを簡略化したものです。 ----------------------------------------------------------- $mail_to = "mail@test.com"; $message = "テストです。\nメールを送ります。"; $headers = 'From: test' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($mail_to, "タイトル", $message, $headers); ------------------------------------------------------------- どなたか解決策をご存知でしたら、御教授宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • auで受信した文字化けしたメール

    auで受信した文字化けしたメール auのW64Sでメールを受信したところ、件名と差出人が「???」と文字化けしてしまい見れませんでした。 メールはとあるイベントに応募した際の応募確認メールで、 From:??? Sub:????あいうえお????完了 本文:まったく文字化けなし といった感じで届きました。 差出人はクリックするときちんとアドレスは表示されます。送信元は恐らくパソコンだと思います。 件名は所々きちんと表示されているのですが、大半が?で文字化けです。 本文はまったく文字化けしておらず、最後まできちんと記載されており普通に読めました。 アドレスは送信専用なので、返信しても無駄で、本文内にあった問い合わせ先は平日のみ対応の電話番号となっており、再送をお願いできません。 どうやら件名に受付番号が記載されているらしく、その受付番号が当落の確認に必要なのです。 どうにかして文字化けした部分を確認する方法はありますか?

    • ベストアンサー
    • au

専門家に質問してみよう