procmailは電子メールサーバーのソフトウェアコンポーネントであり、具体的にはメッセージ配信エージェント(MDA)です。最も初期のメールフィルタプログラムの一つであり、 mboxやMaildirといったストレージ形式 を使用するUnix系メールシステムでよく使用されます。
procmailは1990年にStephen R. van den Bergによって初めて開発されました。[1] Philip Guentherが数年間メンテナンスを引き継ぎましたが、2014年にその役割を放棄しました。[2] このソフトウェアは数年間メンテナンスされず、廃止されたと考えられていました。[3] 2020年5月、Stephen van den Bergが再びメンテナンスを再開しました。[4] このプログラムはその後、複数回のリリースとバグ修正が行われています。
procmailの最も一般的な使用例は、送信者アドレス、件名キーワード、メーリングリストアドレスなどの基準に基づいて、メールを異なるメールボックスにフィルタリングすることです。[5] [6]
もう1つの用途は、procmailにSpamAssassinなどの外部スパムフィルタプログラムを呼び出させることです。この方法により、スパムをフィルタリングまたは削除できます。
procmail 開発者は、procmail 上に SmartList と呼ばれる メーリング リスト マネージャーを構築しました。
Procmailは、メールフィルタリングツールと言語の初期の例です。これはデータ駆動型プログラミング言語であり、 sedやAWKといった初期の行指向言語に似ています。
procmailは標準入力から与えられたメールメッセージを読み取り、配信などの処理を行います。procmailは通常、ユーザーによって直接呼び出されることはありません。代わりに、他のメールプログラムがprocmailを呼び出して、ユーザーの指示に従ってメッセージを配信します。Sendmail やPostfixなどのメッセージ転送エージェント(MTA)は、すべてのメールをprocmailで配信するように設定できます。fetchmailなどのメール取得エージェントは、必要に応じてprocmailを呼び出すことができます。コンパニオンツールformailを使用すると、メールボックスに既に存在するメールにprocmailを適用できます。
procmailの動作は、 1つ以上のレシピ(レシピは順番に読み込まれます)を含む設定ファイル(デフォルトではユーザーのホームディレクトリにある.procmailrc )によって制御されます。各レシピは、モード、0個以上の条件、およびアクションで構成されます。
条件は通常、拡張正規表現で表されますが、他の形式もあります。レシピのアクションは、すべての条件が一致した場合にのみ実行されます(論理積)。条件が指定されていない場合、レシピは無条件となり、アクションは常に実行されます。
アクションは、メッセージを特定のメールボックスに配信する、破棄するなど、メッセージに対して行う処理を指定します。レシピとそのアクションは、配信または非配信のいずれかになります。特定のメッセージの処理は、最初の配信レシピで停止します(レシピのモードフラグで別途指定されている場合を除く)。
単純な.procmailrc設定ファイルは次のようになります。
MAILDIR=$HOME/mail デフォルト=$MAILDIR/受信トレイ :0: * ^リストID: .*<[email protected]> foo-アナウンス
上記は、架空のメーリングリストからのメールをfoo-announceという別のメールボックスにルーティングし、その他のすべてのメールをinboxメールボックスに配信します。どちらも$HOME/mail/ディレクトリの下にあります。
デフォルトでは、procmailは配信できないメールを送信者に「バウンス」するか、完全に破棄します。設定ファイルに誤りがあると、すべてのメールが拒否または破棄される可能性があります。
構成ファイルの形式は、難解であると考えられることがあります。
procmailは、 Multipurpose Internet Mail Extensions (MIME)を含むメールの処理には適していません。MIME固有のヘッダーや国際文字をデコードまたは認識することはできません。
約10年間、procmailはメンテナンスされておらず、その間に複数の深刻なセキュリティ上の脆弱性[7]が発見されました[3](その後修正されました)。
Copyright (c) 1990-2022, SR van den Berg, オランダ. Copyright (c) 1997-2005, Philip Guenther, アメリカ合衆国.
2020年5月現在、procmail 上流メンテナンスは休止状態からアクティブ状態に戻りました。Santiago Vila が証言しているように、私はここ2年ほど procmail のメンテナンスを再開しています…