[PHP-users 27637] Re: mb_send_mailにて

SUGIMURA Takashi 杉村 貴士 sugimura @ yasudakei.org
2005年 11月 27日 (日) 16:07:12 JST


杉村です。

> プログラム的に、昔の方法で以下のようにしてました。
> 
> 1. スクリプトファイルは S-JIS で書かれている(Win から作業するため)
> 2. 題名に漢字が入っていたら(preg_match("/[\x80-\xA0]/", $Subject))
>   "=?iso-2022-jp?B?" . base64_encode( $Subject ). "?=" を行う
> 3. mb_convert_encoding で本文、ヘッダ等を JIS にする
> 4. これを mb_send_mail に渡す
> 
> これをしたところ、becky! で受け取った題名は Base64 でした。
> 不思議なので /var/mail の中身をそのまま見たら、なんと、Base64 を
> Base64 した物が入ってました。
> 

2. で =?iso-2022-jp?B?...?= の意味はわかりますか。

iso-2022-jp で書かれた文字列を B encoding (= Base64) します

ということなので、先に iso-2022-jp (JIS) に変換してから Base64 しないと
MUA 側で decode したときにわけがわからなくなります。

---
杉村 貴士 <sugimura @ YasudaKei.org>
GnuPG fingerprint: C81B 9835 1C9E BD9B 84BF  9785 0B91 D08B F667 DCED


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