27.5. メール配信エージェント (MDA)
Red Hat Enterprise Linux には、Procmail と mail の 2 つの主要 MDA が含まれています。どちらのアプリケーションも LDA と見なされ、MTA のスプールファイルからユーザーのメールボックスにメールを移動します。ただし、Procmail の方が堅牢なフィルターリングシステムを提供します。
このセクションでは、Procmail についてのみ詳しく説明します。mail コマンドの詳細は、man ページを参照してください。
ローカルホストのメールスプールファイルに電子メールが置かれると、Procmail が配信とフィルターリングを行います。Procmail は強力な上、システムリソースの使用が低いため、幅広く利用されています。Procmail は、電子メールクライアントアプリケーションが読み取る電子メールを配信するという重要なロールを果たします。
Procmail は、様々な方法で呼び出すことができます。MTA が電子メールをメールスプールファイルの中に置くと常に Procmail が起動します。次に、Procmail は電子メールを MUA のためにフィルターリング、ファイル保存して、終了します。別の方法としては、メッセージを受信すると常に Procmail を実行するように MUA を設定し、メッセージが正しいメールボックスに移動するようにできます。デフォルトでは、ユーザーのホームディレクトリーに
/etc/procmailrc
または .procmailrc
ファイル(別名 rc ファイル)が存在すると、MTA が新しいメッセージを受信するたびに Procmail が呼び出されます。
Procmail が電子メールメッセージに対応するかどうかは、メッセージが
rc
ファイルの特定の条件または レシピ と一致するかどうかによって異なります。あるメッセージが任意のレシピと適合する場合、電子メールは特定のファイルに置かれるか削除され、それ以外は処理されます。
Procmail が起動すると、電子メールメッセージを読み取り、ヘッダー情報から本文を切り離します。次に、Procmail は
/etc/procmailrc
s ディレクトリーの /etc/procmailrcs
ファイルで、デフォルトのシステム全体の Procmail 環境変数とレシピを探します。
その後、Procmail はユーザーのホームディレクトリーで .procmailrc
ファイルを検索します。多くのユーザーは、Procmail 用に追加の rc
ファイルを作成します。このファイルは、ホームディレクトリーの .procmailrc
ファイル内で参照されます。
デフォルトでは、システム全体の
rc
ファイルが /etc/
ディレクトリーに存在せず、ユーザーのホームディレクトリーに .procmailrc
ファイルが存在しません。そのため、Procmail を使用するには、各ユーザーが特定の環境変数とルールで .procmailrc
ファイルを構築する必要があります。
27.5.1. Procmail の設定
Procmail の設定ファイルには、重要な環境変数が含まれています。これらの変数は、並べ替えするメッセージ、およびどのレシピとも適合しないメッセージの処理を指定します。
これらの環境変数は通常、以下の形式で
.procmailrc
の開始時に表示されます。
<env-variable>="<value>"
この例では、& lt;env-variable> ; は変数の名前に、< value> は 変数を定義します。
ほとんどの Procmail ユーザーが使用していない環境変数が多くあります。また、重要な環境変数の多くがデフォルト値で定義されています。重要な環境変数の多くは、既にデフォルト値で定義されています。大抵の場合は、以下のような変数が使用されます。
- DEFAULT: どのレシピにも一致しないメッセージが配置されるデフォルトのメールボックスを設定します。デフォルトの DEFAULT 値は、$ORGMAIL と同じです。
- INCLUDERC: 照合するメッセージのレシピを含む追加の
rc
ファイルを指定します。これにより、Procmail レシピの一覧は、スパムのブロックや電子メール一覧の管理など、異なるロールを満たす個々のファイルに分割されます。このファイルは、ユーザーの.procmailrc
ファイルのコメント文字を使用して、オンまたはオンにすることができます。たとえば、ユーザーの.procmailrc
ファイル内の行は以下のようになります。MAILDIR=$HOME/Msgs INCLUDERC=$MAILDIR/lists.rc INCLUDERC=$MAILDIR/spam.rc
ユーザーが電子メールリストの Procmail フィルターをオフにしたいが、スパム制御をそのまま残す場合は、最初の INCLUDERC 行をハッシュマーク文字(#)でコメントアウトします。 - LOCKSLEEP: Procmail が特定のロックファイルの使用を試みる間隔を秒単位で設定します。デフォルトは 8 秒です。
- LOCKTIMEOUT: ロックファイルが最後に変更された後、Procmail が古くて削除可能であるとみなすまでに経過する必要のある時間を秒単位で設定します。デフォルトは 1024 秒です。
- LOGFILE: Procmail の情報やエラーメッセージが書き込まれるファイルです。
- MAILDIR: Procmail の現在の作業用ディレクトリーを設定します。設定されると、他の Procmail のパスはすべてこのディレクトリーに対する相対パスになります。
- ORGMAIL: 元のメールボックス、またはデフォルトまたはレシピで必要な場所にメッセージを配置できない場合にメッセージを配置する別の場所を指定します。デフォルトでは、/var/spool/mail/$LOGNAME の値が使用されます。
- SUSPEND: スワップ領域など必要なリソースが利用できない場合に Procmail が一時停止する時間を秒単位で設定します。
- SWITCHRC: 追加の Procmail レシピを含む外部ファイルを指定できます。ただし、これは INCLUDERC オプションと同様です。ただし、レシピのチェックは参照された設定ファイルで実際に停止され、SWITCHRCの指定ファイルのレシピのみが使用される点が異なります。
- VERBOSE: Procmail が詳細情報をログに記録します。このオプションはデバッグに役立ちます。
その他の重要な環境変数は、ログイン名である LOGNAME、ホームディレクトリーの場所である HOME、デフォルトのシェルである SHELL などのシェルからプルされます。
すべての環境変数およびデフォルト値に関する包括的な説明は、
procmailrc
man ページを参照してください。