Next: , Previous: , Up: Rmail   [Contents][Index]


33.5 Rmailファイルとinbox

ローカルでメールを受信したとき、オペレーティングシステムは受信メールを、私たちがinboxと呼ぶファイルに配します。Rmailを開始したとき、movemailと呼ばれるCプログラムを実行して、ローカルのinboxから新しいメッセージを、RmailセッションのRmailファイルにコピーします。このRmailファイルには、以前のRmailセッションの他のメッセージも含まれています。Rmailで実際に読むメールは、このファイルの中にあります。この操作は新しいメールの取得(getting new mail)と呼ばれます。gとタイプすることにより、いつでも新しいメールを取得できます。

変数rmail-primary-inbox-listは、プライマリーRmailファイルにたいするinboxファイルのリストを含みます。この変数を明示的にセットしない場合、Rmailは環境変数MAILを使用するか、最後の手段としてrmail-spool-directoryにもとづく、デフォルトのinboxを使用します。デフォルトのinboxはオペレーティングシステムに依存し、それは/var/mail/username/var/spool/mail/username/usr/spool/mail/usernameなどです。

コマンドset-rmail-inbox-listで、カレントセッションでの任意のRmailファイルにたいするinboxファイルを指定できます。Rmail Filesを参照してください。

inboxとは別にRmailファイルをもつべき理由が2つあります。

  1. inboxファイルのフォーマットは、オペレーティングシステムと、それを使用する他のメールソフトによりさまざまです。Rmailの一部だけがそれらの候補を理解していればよく、それらすべてをRmail自身のフォーマットに変換する方法だけを理解すればよいからです。
  2. メールを紛失せずにinboxにアクセスするのは厄介です。なぜならそれはメール配信とインターロック(連動)する必要があるからです。さらにオペレーティングシステムごとに、異なるインターロック技術が使用されています。inboxから別のRmailファイルに1度メールを移動する方法により、Rmailの残りのすべてがインターロックの必要性を無視できます。なぜならRmailはRmailファイルだけを操作すればよいからです。

Rmailのオリジナルは、内部形式としてBabylフォーマットを使用して記述されていました。その後、わたしたちはUnixおよびGNUシステムの通常のinboxフォーマット(‘mbox’)が処理に適していると気づき、Emacs23以降のRmailでは内部形式としてmboxを使用しています。それらのフォーマットは同じになりましたが、Rmailファイルの形式はまだmboxフォーマットとは異なります。 (実際のところ、mboxフォーマットとは若干の違いがあります。その違いは重要ではありませんが、変数rmail-mbox-formatをセットすることにより、あなたのシステムが使用するフォーマットをRmailに指定できます。詳細は、変数のドキュメントを参照してください)。

新しいメールを受信したとき、Rmailは最初にその新しいメールをinboxファイルからRmailファイルにコピーします。それからRmailファイルを保存して、その後でinboxファイルからそれをクリアーします。この方法では、システムのクラッシュにより、inboxとRmailファイルの間でメールの重複は発生するかもしれませんが、メールを失うことはあり得ません。rmail-preserve-inboxが非nilの場合、Rmailは新しいメールを受信したときにinboxファイルをクリアーしません。旅行の際など、携帯用のコンピューターでPOPを通じてメールをチェックするときは、この変数をセットすれば、メールはサーバーに残るので、あとであなたのワークステーションに保存することができます。

Rmailがinboxファイルから間接的に新しいメールをコピーするケースがあります。最初にmovemailプログラムを実行してinboxから、Rmailファイルと同じディレクトリーにある、.newmail-inboxnameと呼ばれる中間ファイルにメールを移動します。その後、Rmailは、そのファイルから新しいメールをマージして、Rmailファイルを保存し、中間ファイルの削除はその後にだけ行なわれます。悪いタイミングでクラッシュが発生した場合、中間ファイルは残っているので、Rmailは次にinboxファイルから新しいメールを取得するとき、それを再使用します。

Rmailが.newmail-inboxnameの中のデータをmbox形式に変換できない場合、ファイルをRMAILOSE.n(nはファイル名を一意にするために選ばれます)にリネームするので、Rmailはそのデータで再度問題を起こすことはなくなります。メッセージの何がRmailを混乱させたか調べて、それを削除すべきです(大抵は8進コード037のcontrol-underscoreがメッセージに含まれている場合です)。その後、修正されたファイルから1 gを使って新しいメールを取得できます。