ローカルでメールを受信すると、オペレーティングシステムは受信メールを、受信トレイと呼ばれるファイルに格納します。Rmailを起動すると、movemailというCプログラムが実行され、受信トレイから新しいメッセージをメインのRmailファイルにコピーします。このファイルには、過去のRmailセッションで保存された他のメッセージも含まれています。実際にRmailでメールを読むのは、このファイルからです。この操作を新着メールの取得と呼びます。Rmailでは、いつでもgと入力することで新着メールを取得できます。
変数 rmail-primary-inbox-list には、メインの Rmail
ファイルの受信トレイとなっているファイルの一覧が格納されています。この変数を明示的に設定しない場合、Rmail は環境変数 MAIL を使用し、最終手段として rmail-spool-directory
に基づくデフォルトの受信トレイを使用します。デフォルトの受信トレイファイルはオペレーティングシステムによって異なり、多くの場合 /var/mail/username、/var/spool/mail/username、または
/usr/spool/mail/username
となります。
コマンド set-rmail-inbox-list を使用すると、現在のセッションにおける任意の
Rmail ファイルの受信トレイファイルを指定できます。詳細は 複数の
Rmail ファイル を参照してください。
Rmailのファイルと受信トレイを分けるのには、2つの理由があります。
Rmailは、UnixやGNUシステムで受信トレイファイル用に導入された標準的な‘mbox’形式を、Rmailファイルの内部形式として採用しています。(実際には、わずかに異なるmbox形式がいくつか存在します。これらの違いはそれほど重要ではありませんが、変数rmail-mbox-formatを設定することで、お使いのシステムがどの形式を使用しているかをRmailに指定できます。詳細については、当該変数のドキュメントを参照してください。)
新しいメールを受信すると、Rmailはまず受信トレイファイルからRmailファイルへ新しいメールをコピーし、次にRmailファイルを保存し、最後に受信トレイファイルを空にします。これにより、システムクラッシュ時に受信トレイとRmailファイルの間でメールが重複する可能性はありますが、メールが失われることはありません。rmail-preserve-inboxがnilでない場合、Rmailは新しいメールを受信しても受信トレイファイルを空にしません。例えば、旅行中にPOP経由でメールを確認するために使用するポータブルコンピュータなどでこの設定を行うと、メールがサーバーに残り、後でメインのデスクトップワークステーションに保存できるようになります。
場合によっては、Rmailは受信トレイファイルから新しいメールを間接的にコピーします。まずmovemailプログラムを実行して、メールを受信トレイからRmailファイルと同じディレクトリにある.newmail-inboxnameという中間ファイルに移動します。次に、Rmailはそのファイルから新しいメールをマージしてRmailファイルを保存し、その後になって初めて中間ファイルを削除します。不適切なタイミングでクラッシュが発生した場合、このファイルは残り続け、Rmailは次にその受信トレイから新しいメールを受信した際に、再びこのファイルを使用します。
Rmailが.newmail-inboxname内のデータをmbox形式に変換できない場合、Rmailが再度データ処理で問題を起こさないよう、ファイル名をRMAILOSE.n(nは名前を一意にするために選ばれた整数)に変更します。ファイルを確認し、Rmailを混乱させているメッセージ(おそらくcontrol-underscore文字、8進数コード037を含むもの)を特定して削除してください。その後、1 gを使用して、修正済みのファイルから新しいメールを取得できます。