[PHP-users 16893]Re: メール送信時に文字化け

Kishimoto Yuu yu-kishimoto @ saturin.co.jp
2003年 7月 22日 (火) 12:51:46 JST


こんにちは、Kishimoto です。

キャスター マイルド <caster_mild_49401219 @ hotmail.com> wrote:

> よけいなことをせずに、シンプルに
> $subject = mb_convert_encoding($subject, "JIS", "auto");
> $subject = "=?iso-2022-jp?B?" . base64_encode($subject) . "?=";
> とJIS変換して、ヘッダをつけてやると、うまくいきました。

解決されたのでしたら良かったですが、元のソースを
見ると

> $subject = "予約完了!申し込みありがとうございます。";
> $subject = mime_enc($subject,1);
> if(preg_match("/[\x80-\xA0]/",$mingle_name)){
> $name = mime_enc($mingle_name,1);//日本語ならMIMEヘッド
> }
> // 中略
> if(!mail($mail_address, $subject, $body, $head)){

となっていて、単に $subject がMIMEエンコードされていない
だけなのではないでしょうか?
Subject: の文字列が固定ならば良いですが、入力などで変わる
場合、mime_enc の中で行っている(らしい?)半角カナ→全角
変換などの処理が必要になると思います。

メールで日本語を扱う際の決まりごとについては、こちら↓の
サイトを参考にされるとよろしいかと思います。

http://www.mew.org/Newsletters/

それでは、失礼します。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Kishimoto Yuu <yu-kishimoto @ saturin.co.jp>



PHP-users メーリングリストの案内