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
              外 部コマンドが動いていない時に使われるプロセスの権
              限。

リソース制御
       下の文章で、transportmaster.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