PIPE(8) PIPE(8) 名前 pipe - Postfix 外部コマンドへの配送 書式 pipe [generic Postfix daemon options] command_attributes... 解説 pipe デーモンは Postfix キューマネージャから外部コマンドへ のメッセージ配送要求を処理します。このプログラ ム は mas- ter(8) プロセスマネージャから起動されることを想定していま す。 pipe デーモンはキューファイルを更新し、受信者を終わった も のとしてマークするか、キューマネージャに後で再び試行するよ うに通知します。配送問題のレポート は bounce(8) ま た は defer(8) デーモンの適切な方に送られます。 単一受信者への配送 外部コマンドには一つの配送要求につき一つ以上の受信者を扱え ないものがあります。このような配送方法の例は、ペー ジャ(ポ ケットベル)、 FAX マシンなどがあります。 Postfix が1つの配送につき複数の受信者に送らないようにする には、次のように Postfix main.cf ファイルで指定します transport_destination_recipient_limit = 1 ここで transport は Postfix master.cf エントリの pipe ベー スな配送方法の1番目のカラムにある名前です。 コマンド属性の文法 外 部コマンドの属性は master.cf ファイルのサービスの定義の 最後で与えられます。文法は次のとおりです: flags=BFR.> (オプション) オプションのメッセージ処理フラグ。デフォル ト で は メッセージは変更せずにコピーされます。 B それぞれのメッセージの最後に空行を加えます。 これは前に空行がある場合のみに "From " 行 を 認識するようなメールユーザエージェントが必要 とします。 F "From sender time_stamp" エンベロープヘッ ダ をメッセージ本体の前に付加します。これは、例 えば UUCP ソフトウェアなどにより求めら れ ま す。 R Return-Path: メッセージヘッダをエンベロープ 送信者アドレスに付加します。 . "." で始まる行の前に . を付けます。これ は、 例えば、BSMTP ソフトウェアで必要です。 > > を "From " で始まる行の前に付加します。こ れは例えば UUCP ソフトウェアなどにより求めら れます。 user=username (必須) user=username:groupname 外 部コマンドは username で指定された権限で実行され ます。ソフトウェアは root 権限またはメールシステ ム 所 有者権限の外部コマンドを拒否します。groupname が 指定されると、対応するグループ ID が username の グ ループ ID のかわりに使われます。 eol=string (default: \n) 出 力レコードのデリミタ。通常は \r\n または \n のど ちらかを使います。通常の C 形式のバックスラッシュエ ス ケープシークエンスが認識されます: \a \b \f \n \r \t \v \octal そして \\. size=size_limit (optional) この制限(バイト単位)より大きなサイズのメッセージ は 送信者へバウンスされます。 argv=command... (必須) 実 行されるコマンド。これは最後のコマンド属性として 指定されなければいけません。コマンドは直接実行さ れ ま す。つまり、シェルのメタ文字はシェルコマンドの解 釈を受けません。 コマンド引数ベクトル(?; vector)では、次のマクロが認 識されて、 Postfix キューマネージャ配送要求から得た 対応する情報に置き換えられます: ${extension} このマクロは受信者アドレスの拡張部分に展開さ れ ます。たとえば user+foo@domain というアド レスであれば、拡張部分は foo です。 ${extension} を含むコマンドライン引数は、 コ マンドライン引数と同じ数の受信者に展開されます。 ${mailbox} このマクロは受信者アドレスのローカル部分全体 に 展開されます。たとえば user+foo@domain な らば mailbox は user+foo です。 ${mailbox} を含むコマンドライン引数はコマ ン ドライン引数と同じ数の受信者に展開されます。 ${nexthop} このマクロは次に飛ぶホスト名に展開されます。 ${recipient} こ の マクロは受信者アドレス全体に展開されま す。 ${recipient} を含むコマンドライン引数はコ マ ン ド ライン引数と同じ数の受信者に展開されま す。 ${sender} このマクロはエンベロープの送信者アドレスに展 開されます。 ${size} こ のマクロは Postfix から見たメッセージサイ ズに展開され、これはほぼ配送されるメッセージ のサイズになります。 ${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 コマンドを 使ってください。 その他 export_environment 非 Postfix プロセスに渡される環境変数名のリスト。 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