[PHP-users 2185] Re: パイプ使用してのメール送信で subject 文字化け
TAKAHASHI Masayoshi
php-users@php.gr.jp
Thu, 20 Sep 2001 13:38:20 +0900
高橋征義です。
[PHP-users 2180]にて、
"Tsuyoshi Takahashi" <mltun@ml.vip.co.jp> wrote:
> パイプを使った場合のSubjectは
> mb_encode_mimeheader(mb_convert_encoding($Subject,"JIS"),"ISO-2022-JP","B","\n")
> ↓
> Subject: [my subject]
> =?ISO-2022-JP?B?GyRCRnxLXDhsJGIbKEIgT0sbJEIkSiROISkhKSEmISYh?=
> =?ISO-2022-JP?B?JiEmISYhJiEmJDMkcyRKJEtEOSQvJEYkYiEpGyhC?=
>
> mb_send_mail関数を使った場合のSubjectは
> ↓
> Subject: [my subject] =?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=
> =?ISO-2022-JP?B?GyRCJGIbKEIgT0sbJEIkSiROISkhKSEmISYhJiEmISYhJiEmJDMbKEI=?=
> =?ISO-2022-JP?B?GyRCJHMkSiRLRDkkLyRGJGIhKRsoQg==?=
上の方は、「ESC $ B」(JIS X 0208-1983の指定)とかが、個々の符号化
されたテキスト(「=?ISO-2022-JP?B?」で始まり「?=」で終わっている部分)
には入ってないようですね(一番最初のやつにはついてますが)。
確かにRFC2047によれば、同じencode-wordに挟まれた linear-space-white
は無視して復元するべき、となっています。その通りに復号化していれば、
問題はないのでしょう。
でも、メールソフト側で正しくdecodeできるとは限らない(そもそものPHP4
自身のdecode関数もちゃんとdecodeできていない)のであれば、個々の
符号化テキストごとにcharsetの指定が入るように、
mb_encode_mimeheader を修正した方がいいのではないでしょうか。
# と言いつつ、patchまでは出せないのでした。すみません(_o_)
高橋征義 (TAKAHASHI Masayoshi) Email:maki@inac.co.jp