これらのコマンドは、Rmailファイルから別のファイルへメッセージをコピーします。
現在のメッセージの全文をファイル file (rmail-output) に追記する。
表示されている現在のメッセージのコピーを、ファイル file (rmail-output-as-seen) に追加する。
メッセージ本文のみをファイル file に出力します。ファイル名はメッセージのヘッダー ‘Subject’ のデフォルト名が使用されます。
コマンド o および C-o は、現在のメッセージを指定したファイルにコピーし、末尾に追加します。正の接頭辞引数は繰り返し回数として機能し、現在のメッセージから順に、削除済みメッセージを無視して、指定されたファイルに連続するその数だけのメッセージがコピーされます。
これら2つのコマンドの主な違いは、コピーする範囲にあります。o は、すべてが表示されていなくてもメッセージヘッダー全体をコピーしますが、C-o は現在表示されているヘッダーのみをコピーし、それ以上はコピーしません。メッセージの表示を参照してください。さらに、o は、ファイルが Babyl 形式である場合にメッセージを Babyl 形式(Emacs バージョン 22 以前の Rmail で使用)に変換します。一方、C-o は Babyl ファイルへの出力を一切行えません。
出力ファイルが現在Emacsのバッファで開かれている場合、出力コマンドはそのメッセージを当該バッファに追記します。最終的にバッファをファイルに保存するかどうかは、ユーザー次第です。
メッセージの本文にファイルの内容が含まれている場合があります。w コマンド(rmail-output-body-to-file)を使用すると、本文をファイルに保存できます(メッセージヘッダーは除きます)。こうしたメッセージでは、‘Subject’ フィールドに意図したファイル名が含まれていることが多いため、w コマンドでは ‘Subject’
フィールドを出力ファイル名のデフォルトとして使用します(ファイル名としてポータブルに使用できない一部の文字を置換した後)。ただし、ファイル名はミニバッファを使用して読み込まれるため、必要に応じて別の名前を指定することも可能です。
また、メニューで選択したRmailファイルにメッセージを出力することもできます。「Classify」メニューで「Output Rmail
File」メニュー項目を選択し、次に目的のRmailファイルを選択してください。これにより、oコマンドと同様に、現在のメッセージがそのファイルに出力されます。変数rmail-secondary-file-directoryとrmail-secondary-file-regexpで、メニューに表示するファイルを指定します。1つ目の変数はファイルを探すディレクトリを、2つ目の変数はそのディレクトリ内で表示するファイル(正規表現に一致するものすべて)を指定します。一致するファイルがない場合は、このメニュー項目を選択できません。
o または C-o でメッセージをコピーすると、元のメッセージに ‘filed’ 属性が付与され、そのようなメッセージがカレントの状態にあるとき、モードラインに ‘filed’ が表示されます。
各メールメッセージのコピーを1通だけ残したい場合は、変数 rmail-delete-after-output に t
を設定してください。すると、o、C-o、w コマンドは、コピーした後に元のメッセージを削除します。(必要に応じて、後から復元することも可能です。メッセージの削除 を参照してください。)
デフォルトでは、o
は出力されるメッセージの削除状態を元のメッセージの状態のまま保持します。そのため、出力前に削除されたメッセージは、出力ファイルにおいても削除済みとして表示されます。変数
rmail-output-reset-deleted-flag に nil
以外の値を設定すると、この動作が無効になります。メッセージのコピーの削除状態がリセットされるため、出力ファイルでは削除されていないメッセージとして表示されます。さらに、この変数が
nil 以外の場合、o
に正の引数を指定しても、出力する連続したメッセージを検索する際に削除済みメッセージが無視されることはありません。
変数 rmail-output-file-alist
を使用すると、現在のメッセージの内容に基づいて、出力ファイルのインテリジェントなデフォルト値を指定できます。値は、各要素が以下の形式を持つリストである必要があります:
(regexp . name-exp)
現在のメッセージに regexp に一致するものがある場合、出力のデフォルトファイル名は name-exp
となります。複数の要素がメッセージに一致する場合、最初に一致した要素がデフォルトファイル名を決定します。部分式 name-exp
は、使用するファイル名を指定する文字列定数であってもよいですし、より一般的には、ファイル名を文字列として返す任意の Lisp
式であっても構いません。rmail-output-file-alist は o と C-o の両方に適用されます。
Rmailでは、変数rmail-automatic-folder-directivesの値に基づいて、メインのRmailファイル(rmail-file-nameで指定されるもの)から他のファイルへメッセージを自動的に保存できます。この変数は、どのメッセージをどこに保存するかを指定する要素(‘directives’)のリストです。各ディレクティブは、出力ファイルに続き、ヘッダー名と正規表現のペアが1組以上並んだリスト形式となっています。メッセージのヘッダーが指定された正規表現に一致する場合、そのメッセージは指定のファイルに保存されます。ディレクティブに複数のヘッダーエントリがある場合は、すべてが一致する必要があります。Rmailはファイルrmail-file-nameからメッセージを表示する際にディレクティブを確認し、最初に一致したもの(もしあれば)を適用します。出力ファイルがnilの場合、メッセージは保存されずに削除されます。例えば、この機能を利用して、特定のアドレスからのメッセージや、特定の件名を持つメッセージを専用のファイルに保存することができます。