ローカルでメールを受信したとき、オペレーティングシステムは受信メールを、私たちが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ファイルを参照してください。
inboxとは別にRmailファイルをもつべき理由が2つあります。
Rmailは、Rmailファイルの内部フォーマットとして、UnixおよびGNUシステムに取り入れられた、標準的な‘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を使って新しいメールを取得できます。