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: メッセージヘッダをエンベロープ 送信者アドレスに付加する。 . "." で始まる行の前に. を付けます。これは、例 えば、BSMTP ソフトウェアで必要です。 > > を"From " で始まる行の前に付加する。これは 例えば UUCP ソフトウェアなどにより求め ら れ る。 user=username (必須) user=username:groupname 外 部コマンドは username で指定された権限で実行され ます。ソフトウェアは root 権限またはメールシステ ム 所 有者権限の外部コマンドを拒否します。groupname が 指定されると、対応するグループ ID が username の グ ループ ID のかわりに使われます。 argv=command... (必須) 実 行されるコマンド。これは最後のコマンド属性として 指定されなければいけません。コマンドは直接実行さ れ ま す。つまり、シェルのメタ文字はシェルコマンドの解 釈を受けません。 コマンド引数ベクトル (?; vector) では、次のマクロが 認 識されて、Postfix キューマネージャ配送要求から得 た対応する情報に置き換えられます。 ${extension} このマクロは受信者アドレスの拡張部分に展開さ れ ます。たとえば user+foo@domain というアド レスであれば、拡張部分は foo です。 ${exten- sion} を含むコマンドライン引数は、コマンドラ イン引数と同じ数の受信者に展開されます (?)。 ${mailbox} このマクロは受信者アドレスのローカル部分全体 に展開されます。たとえば user+foo@domain な らば mailbox は user+foo です。${mailbox} を 含むコマンドライン引数はコマンドライン引数と 同じ数の受信者に展開されます。 ${nexthop} このマクロは次に飛ぶホスト名に展開されます。 ${recipient} このマクロは受信者アドレス全体に展開さ れ ま す。 ${recipient} を含むコマンドライン引数は コマンドライン引数と同じ数の受信者に展開され ます。 ${sender} このマクロはエンベロープの送信者アドレスに展 開されます。 ${user} このマクロは受信者アドレスのユーザ名部分に展 開 さ れ ま す。 た と え ば、 ア ド レ ス user+foo@domain のユーザ名部分は user です。 ${user} を含むコマンドライン引数はコマンドラ イン引数と同じ数の受信者に展開されます。 さらに ${name}、$name、$(name) のどの形式も認識されます。$ だけが必要な場合は、$$ を指定します。 診断 コマンド終了状態コードは <sysexits.h> の定義の慣例に従うこ とが期待されます。 問題や処理は syslogd(8) に記録されます。不正なメッセ ー ジ ファイルはキューマネージャが詳細な検査をするために corrupt キューに移動できるようにマークされます。 セキュリティ このプログラムは 2 つの性格を必要とします。1) プライベート Postfix キューや IPC メカニズムへのアクセス と 2) 特定ユー ザとしての外部コマンドの実行。それゆえ、セキュリティには敏 感です。 設定パラメータ 以 下の main.cf パラメータは特にこのプログラムに関連があり ます。文法の詳細やデフォルト値は Postfix main.cf ファイ ル を参照して下さい。設定の変更後は postfix reload コマンドを 使ってください。 その他 mail_owner 外部コマンドが動いていない時に使われるプロセスの 権 限。 リソース制御 下 の文章で、transport は master.cf エントリの最初のフィー ルドです。 transport_destination_concurrency_limit transport という名前の配送で同じ目的地に並列に配 送 す る 数の制限。デフォルトの制限は default_destina- tion_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) システムロギング ライセンス 安全なメーラライセンス(The Secure Mailer license)はこ の ソフトウェアと一緒に配布されなければいけません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA