重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いろいろサイトで調べてもはっきりした答えがないので質問しました。

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

A 回答 (3件)

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


ご参考まで。

参考URL:http://free-club.net/index.php?itemid=15
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/09 23:44

※検証したわけではないので参考程度に



ヘッダーに文字コードをちゃんと指定するといくらか良いかもです。
$header .= "Content-type: text/plain; charset=Shift_Jis\n";

また、私もメール関連でつまずいていろいろ調べていた時、
メールはヘッダーから本文までJISで書いてあるのが正しい
との記述を見たことがあります。(参照先は忘れました)

ちなみに私の場合、携帯相手のメールは試してませんが
SJISで書いて、ヘッダーに指定入れておけば
回りで使用していたメーラーでは読めてました
    • good
    • 0

$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変換してみてはいかがですか?

この回答への補足

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

補足日時:2006/09/21 00:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!