PIPE(8) PIPE(8) 名前 pipe - Postfix 外部コマンドへの配送 書式 pipe [generic Postfix daemon options] command_attributes... 解説 pipe デーモンは Postfix キューマネージャから外部コマンドへ のメッセージ配送要求を処理します。それぞれの配送要求はキュ ーファイル、送信者アドレス、配送先のドメインまたはホストと 一つ以上の受信者を指定します。このプログラムは master(8) プロセスマネージャから起動されることを想定しています。 pipe デーモンはキューファイルを更新し、受信者を終わったも のとしてマークするか、キューマネージャに後で再び試行するよ うに通知します。配送問題のレポートは bounce(8) または defer(8) デーモンの適切な方に送られます。 コマンド属性の文法 外部コマンドの属性は master.cf ファイルのサービスの定義の 最後で与えられます。文法は次のとおりです: flags=FR> (オプション) オプションのメッセージ処理フラグ。デフォルトではメッ セージは変更せずにコピーされる。 F "From sender time_stamp" エンベロープヘッダを メッセージ本体の前に付加する。これは、例えば UUCP ソフトウェアなどにより求められる。F フラ グによりメッセージに空行も付加される。 R Return-Path: メッセージヘッダをエンベロープ 送信者アドレスに付加する。 > > を "From " で始まる行の前に付加する。これは 例えば UUCP ソフトウェアなどにより求められる。 user=username (必須) user=username:groupname 外部コマンドは username で指定された権限で実行され ます。ソフトウェアは root 権限またはメールシステム 所有者権限の外部コマンドを拒否します。groupname が 指定されると、対応するグループ ID が username のグ ループ ID のかわりに使われます。 argv=command... (必須) 実行されるコマンド。これは最後のコマンド属性として指 1 PIPE(8) PIPE(8) 定されなければいけません。コマンドは直接実行されます。 つまり、シェルのメタ文字はシェルコマンドの解釈を受 けません。 コマンド引数ベクトル(?; vector)では、次のマクロが認 識されて、Postfix キューマネージャ配送要求から得た 対応する情報に置き換えられます。 ${extension} このマクロは受信者アドレスの拡張部分に展開さ れます。たとえば user+foo@domain というアド レスであれば、拡張部分は foo です。 ${extension} を含むコマンドライン引数は、コマ ンドライン引数と同じ数の受信者に展開されます(?)。 ${mailbox} このマクロは受信者アドレスのローカル部分全体 に展開されます。たとえば user+foo@domain な らば mailbox は user+foo です。${mailbox} を 含むコマンドライン引数はコマンドライン引数と 同じ数の受信者に展開されます。 ${nexthop} このマクロは次に飛ぶホスト名に展開されます。 ${recipient} このマクロは受信者アドレス全体に展開されます。 ${recipient} を含むコマンドライン引数はコマ ンドライン引数と同じ数の受信者に展開されます。 ${sender} このマクロはエンベロープの送信者アドレスに 展開されます。 ${user} このマクロは受信者アドレスのユーザ名部分に展 開されます。たとえば、アドレス user+foo@domain のユーザ名部分は user です。${user} を含むコ マンドライン引数はコマンドライン引数と同じ数 の受信者に展開されます。 さらに ${name}、$name、$(name) のどの形式も認識されます。 $ だけが必要な場合は、$$ を指定します。 診断 コマンド終了状態コードは <sysexits.h> の定義の慣例に従う 2 PIPE(8) PIPE(8) ことが期待されます。 問題や処理は syslogd(8) に記録されます。不正なメッセージフ ァイルはキューマネージャが詳細な検査をするために corrupt キューに移動できるようにマークされます。 セキュリティ このプログラムは2つの性格を必要とします。1) プライベート Postfix キューや IPC メカニズムへのアクセス と 2) 特定ユー ザとしての外部コマンドの実行。それゆえ、セキュリティには敏 感(?; sensitive)です。 設定パラメータ 以下の main.cf パラメータは特にこのプログラムに関連があり ます。文法の詳細やデフォルト値は main.cf ファイルを参照し て下さい。設定の変更後は postfix reload コマンドを使ってく ださい。 その他 mail_owner 外部コマンドが動いていない時に使われるプロセスの権限。 Resource controls 下の文章で、transport は master.cf エントリの最初のフィー ルドです。 transport_destination_concurrency_limit transport という名前の配送で同じ目的地に並列に配送 する数の制限。デフォルトの制限は default_destination_concurrency_limit パラメータか ら得ます。制限は Postfix キューマネージャによって強 制されます。 transport_destination_recipient_limit transport という名前の配送で(一つの)メッセージ配送 ごとの受信者数の制限。デフォルトの制限は default_destination_recipient_limit パラメータから 得ます。制限は Postfix キューマネージャによって強制 されます。 transport_time_limit transport という名前の配送で外部コマンドへの配送の 時間制限。デフォルトの制限は command_time_limit パラ メータから得ます。制限は Postfix キューマネージャに よって強制されます。 関連項目 bounce(8) 配達不能状態レポート master(8) プロセスマネージャ qmgr(8) キューマネージャ syslogd(8) システムロギング 3 PIPE(8) PIPE(8) ライセンス 安全なメーラライセンス(The Secure Mailer license)はこのソフト ウェアと一緒に配布されなければいけません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA 4