こんばんは。
既に回答は出ていますが、これが話題に上がるとは思いませんでした。(しみじみ)
In message <
20201125.140335....@qb3.so-net.ne.jp>
on Wed, 25 Nov 2020 14:03:35 +0900 (JST),
村田 隆 <
tmu...@qb3.so-net.ne.jp> wrote:
>> 最近になって少し困ったことが起きております。
>> 受信したメール本文やテキスト形式の添付ファイルに
>> From
>> で始まる行があると
>>>From
>> に変換されるという現象です。(行頭に '>' が追加されます。)
>
> mailbox のように、1ユーザ1ファイルで複数メールを格納して管理する形式では、
> メールの区切りに行頭「From 」(From+空白)を使うことがあります(Solaris以外)。
いにしえでもないかもしれませんが、UNIX mailbox形式では確か、
From エンベロープの送信者のメールアドレス ctime(3)形式の日時
の行を個々のメッセージの開始行として使用しています。今時のLinuxにある
かどうかわかりませんが、from(1)なんていうコマンドは、これを使って誰か
らメールが届いたかを表示するコマンドでした。
ほんで、届いたメッセージのボディに"From "を含んだ行があると上記の行と
区別が付かなくなるたため、">From "と書き換える様にしていました。本文で
あろうが添付ファイルであろうが書き換えるのは、MIMEなんて知らないメール
のボディはテキストと信じている時代の仕組みなので結果的にそうなります。
(余談ですが、MIMEの規格的には「本文」と「添付ファイル」といった区別は
なく、単なるマルチパートのメッセージのtextとそれ以外のパートの違いでし
かありません。)
この書き換えは、mailbox形式に格納する処理を行うローカルの配送エージェン
ト、いにしえにはUCB MailやMailxではない/bin/mailの仕事です。
Solarisでは、この様な変換を行う代わりに、"Content-Length"というヘッダー
のフィ-ルドを使用して、ここにメッセージのボディのバイト数を格納するこ
とで次の"From "行の位置を特定するようにしていたと記憶しています。
> そのため、本文に「From 」があると誤動作してしまうので、mailbox にあるとき
> には「>From 」に変換しておき、POP等でメール単位の取得をしたとき、「>From 」
> を「From 」に戻す、という変換をすることがあります。
戻す処理をするPOP3等のサーバーの実装を見たことはありませんが、技術的に
は可能でしょうねぇ。
今時は、Maildirや他の形式でメッセージを保持するため、私的には見掛ける
ことは殆どなくなりました。
--
神戸 隆博 (かんべ たかひろ) at 伊勢近辺