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