偶然的通行人 さんが書きました:
Thunderbird 本体からおこなう操作としては、次のような手順があります。
(a)[ファイル] -> [名前を付けて保存] -> [ファイル]
(b)メッセージを選択して [右クリック] -> [メッセージを保存]
(c)メッセージを選択して Thunderbird のウィンドウ外へドラッグ&ドロップ
このうち、(c)の方法で保存した場合、「Re:」に関しては当方でもおっしゃっているようになります。
例えば、
Re: 3/3のミーティングの報告です
という Subject のメッセージがあったとして、これを(c)の手順で保存すると、ファイル名は
3_3のミーティングの報告です.eml
となります。コロン以前が消え、スラッシュがアンダースコアに置き換えられます。
しかし、なぜか「Fwd:」の場合はそうなりません。
例えば、
Fwd: 3/3のミーティングの報告です
は、
Fwd 3_3のミーティングの報告です.eml
となり、コロンが除去されただけで、前の文字列は残ります。
一方、(a)(b)の手順で保存すると、
Re: 3/3のミーティングの報告です
のメッセージも
Re 3_3のミーティングの報告です.eml
となります。
(a)/(b)だと、Re: を一個つけていて、つけないのは、(c) のドラッグ&ドロップだけでしたか。
ファイル名にRe:をつけて欲しい、というバグがあって、全部そうだと思っていたんですけど、(c) だけだったんですね。
知らなかった。
Subject: RE: rE: Re: ABCDE
とやると、もう少し現象が見えてきます。
スレッドペイン = Re: ABCDE
メッセージペインのヘッダー = Subject: RE: rE: Re: ABCDE
(a)/(b) = Re: ABCDE
(c) = ABCDE
これは、(1) Subjet: ヘッダーそのまま、 (2) SubjectにRe有り=true + Re:を除去したSubject、 (3) Re:を除去したSubjectだけ、の、どれを使うかの違いで、
メッセージペインのヘッダー = (1)、
スレッドペイン/(a)/(b) = (2) で、SubjectにRe有り=true だと、"Re: " を一個先頭につける、
(c) = (3)、
ということになります。
あと、ファイル名だから、Winでファイル名に使えないコロンの除去、が、当然入ります。
これは、(a)、(b)、(c)、で、通るパス(処理するモジュール)が、全然異なることに起因しています。
実は、(a)と(b)、添付ファイルだと、Openから保存、と、Save As、は、最終的に同じことをするにも関わらず、
全然異なるパスを通っていて、選択される「最後に保存したディレクトリー」が、パスによって異なる、というような問題があり、
統一したパスを通すように変えるべきだ、というバグが開かれています。
メールの保存も同様であり、保存する時のファイル名に関しては、たまたま、運良く同じルーチンを使っていた、というだけの話でしょう。
いつでもどこでも同じ名前で統一感を醸し出す、なんてなことをするはずもない(^^)
(c) の場合は、ドラッグ&ドロップですから、保存される時のファイル名を作り出すところが、(a)/(b)とは全然違います。
OSのデスクトップへのドラッグでは、ドロップの処理を行うのはThunderbirdではなく、
ドロップの時に処理を行う、WinだとWindows Explorerに、Thunderbirdが、保存に使われる、ユニークなファイル名を引き渡す義務があります。
で、この、ユニークなファイル名の生成は、ドラッグのondragstartというような、ドラッグ開始のイベントハンドラーの中で行われます。
これは、(a)/(b)のコンポーネントとは別物です。
この中で使っている、ユニークなファイル名を生成するルーチンが、(a)/(b)と(c)で異なっているのでしょう。
Subjectヘッダーから全部持って来直し、ではなく、SubjectにRe有り=true だと"Re: "を一個先頭につける、を加えるだけであって、パフォーマンスの問題を引き起こす可能性はゼロだし、
(c)だけ異なる件は、ユニークなファイル名を生成するルーチンを、(a)/(b)と共通にすればいい話だと思います。
統一したルーチンを使いさえすれば、長すぎて短縮するロジックなども共通になるし。
ファイル名にRe:をつけて欲しい、というバグは、この件かな?
ドラッグ開始のイベントハンドラーはJavaScriptだし、その中でユニークなファイル名を生成するルーチンを呼ぶのもJavaScriptだったような気が...
そうならば、ドラッグドロップのイベントハンドラーを自分のもので置き換えてしまうコードは、ドラッグドロップのイベントのデータをとる時に作ったのがそのまま使えるし、
あとは、Thunderbirdのハンドラーをコピーして、(a)/(b)と同じものを呼ぶように書き換えてしまったものを作るだけ。
これで、「Tbがファイル名を作りだすところで変えてしまう」という戦略も可能であることが判明。
複数のメールのデスクトップなどへのドラッグ&ドロップでの保存は、少なくともWinでは動かなくてサポートされていなくて、
全部のメールのユニークなファイル名を生成してもムダなので、先頭の一つしかユニークなファイル名を生成していないから、
パフォーマンスの問題は、どう転んでも起きようがないし(^^)
なお、Re: と Fwd: の違いは、業界公認の接頭詞か、Thunderbirdローカルの接頭詞か、によります。
「Re:は一個だけ」という、意味からもマナーからも要請されることを実現するために、Re:は特別に扱われています。
Re: の無限の増殖は、Thunderbirdを通過すると一個のRe:だけになるから、Thunderbirdの所で防止できます。
Fwd:の場合は、Thunderbird は、Subject: Fwd: Fwd: ,,, Fwd: と増やしますが、他のメーラーは増やさないから、少々増えても問題なし。
[訂正]
http://en.wikipedia.org/wiki/List_of_email_subject_abbreviations#Standard_prefixesFwd: も、Standard Prefixのようです。FW:の記述で「Also written as "FWD: ", "Fwd: " or "Fw: ".」とありました。
Re:とは異なり、意味的に、複数あることは正常、ということかな。
[/訂正おわり]