• 締切済み

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でもいいのですが、すっきりとほどんどのメーラーで対応できる方法はあるのでしょうか? どなたかご教授お願いします。

みんなの回答

  • taik
  • ベストアンサー率0% (0/0)
回答No.3

PHPのバージョンにより、文字化けがあるようです(ver4.4.1)。 ご参考まで。

参考URL:
http://free-club.net/index.php?itemid=15
bakusui
質問者

お礼

回答おくれましてもうしわけないです。 さて、バージョンによるバグですか・・・・

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.2

※検証したわけではないので参考程度に ヘッダーに文字コードをちゃんと指定するといくらか良いかもです。 $header .= "Content-type: text/plain; charset=Shift_Jis\n"; また、私もメール関連でつまずいていろいろ調べていた時、 メールはヘッダーから本文までJISで書いてあるのが正しい との記述を見たことがあります。(参照先は忘れました) ちなみに私の場合、携帯相手のメールは試してませんが SJISで書いて、ヘッダーに指定入れておけば 回りで使用していたメーラーでは読めてました

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

$mail_subject = '入会申込受付のご連絡'; $mail_subject =mb_convert_encoding($mail_subject,"JIS","AUTO"); $mail_subject = base64_encode($mail_subject); $mail_subject = '=?ISO-2022-JP?B?' . $mail_subject . '?='; base64_encodeするまえに、mb_convert_encodingで JIS変換してみてはいかがですか?

bakusui
質問者

補足

早速の返信ありがとうございます。 >base64_encodeするまえに、mb_convert_encodingで JIS変換してみてはいかがですか? ですがパターン1ですか? パターン2でしょうか。

関連するQ&A