user No.??? さんが書きました:
すみません、二、三行目の先頭にはスペースがあります。
再現しました。
「あいうえおかきくけこさしすせそアイウエオカキクケコサシスセソ123456789ABCDEFG」というSubject:のメールを作り、
サブジェクトの行を2倍して、2倍の長さのサブジェクトを作り、2つ目の「Subject:」を[SP]にして継続行に変え、
最初と最後の行以外の行末を、[改行] ⇒ [SP][SP][改行] に変える、という操作をしてみました。
コード:
Subject: =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKiQrJC0kLyQxJDMkNSQ3JDkkOyQ9GyhC?=[改行]
[SP]=?ISO-2022-JP?B?GyRCJSIlJCUmJSglKiUrJS0lLyUxJTMlNSU3JTklOyU9IzEjMiMzGyhC?=[SP][SP][改行]
[SP]=?ISO-2022-JP?B?GyRCIzQjNSM2IzcjOCM5I0EjQiNDI0QjRSNGI0cbKEI=?=[SP][SP][改行]
[SP]=?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKiQrJC0kLyQxJDMkNSQ3JDkkOyQ9GyhC?=[SP][SP][改行]
[SP]=?ISO-2022-JP?B?GyRCJSIlJCUmJSglKiUrJS0lLyUxJTMlNSU3JTklOyU9IzEjMiMzGyhC?= [SP][SP][改行]
[SP]=?ISO-2022-JP?B?GyRCIzQjNSM2IzcjOCM5I0EjQiNDI0QjRSNGI0cbKEI=?=[改行]
Subject:ヘッダーをデコードしてMsgDBHdrに保持するデータは、以下のようになっていました。
デコード前のsubject。
コード:
subject = =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKiQrJC0kLyQxJDMkNSQ3JDkkOyQ9GyhC?= =?ISO-2022-JP?B?GyRCJSIlJCUmJSglKiUrJS0lLyUxJTMlNSU3JTklOyU9IzEjMiMzGyhC =?ISO-2022-JP?B?GyRCIzQjNSM2IzcjOCM5I0EjQiNDI0QjRSNGI0cbKEI=?= =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKiQrJC0kLyQxJDMkNSQ3JDkkOyQ9GyhC?= =?ISO-2022-JP?B?GyRCJSIlJCUmJSglKiUrJS0lLyUxJTMlNSU3JTklOyU9IzEjMiMzGyhC?= =?ISO-2022-JP?B?GyRCIzQjNSM2IzcjOCM5I0EjQiNDI0QjRSNGI0cbKEI=?=
デコードした後のsubject。ヘッダーペインの表示、フィルターなどに使われる。
コード:
mime2DecodedSubject = あいうえおかきくけこさしすせそ =?ISO-2022-JP?B?GyRCJSIlJCUmJSglKiUrJS0lLyUxJTMlNSU3JTklOyU9IzEjMiMzGyhC 456789ABCDEFGあいうえおかきくけこさしすせそアイウエオカキクケコサシスセソ123456789ABCDEFG
デコード前に既に、二行目で、エンコードされた文字列のままだが、後ろの「?=」を除去、が見られます。
ヘッダーの処理では、「Subject: =?ISO-2022-JP?B?...?= =?utf-8?B?...?= =?windows-1252?Q?...?= =?koir-8?B?...?=」といった、
エンコードのcharsetが異なるものやエンコードの方式が異なるものに対する処理を容易にするために、
より広い範囲の一つのcharset、QPではなくBase64、に統一しようとします。
[SP][SP][改行] を [SP]X[改行] (Xはアルファベット)にすると問題は起こらないですし、一行目でも三行目以降でも問題が起こらないようですから、
二つ目のアトムの時に、その統一しようとする処理で、スペースがあると、行末に向かって非スペース文字を探して、見つからないのでエラーになる、というようなことかもしれません。
なんらかのQuirksによる行末のスペースの除去とかの影響で、二行目(二つ目のアトム)の処理においてはエラーが起こる、ということかもしれません。