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=BDFORhqu.> (オプション)
              オプションのメッセージ処理フラグ。デフォル ト で は
              メッセージは変更せずにコピーされます。

              B      それぞれのメッセージの最後に空行を加えます。
                     これは前に空行がある場合のみに "From " 行 を
                     認識するようなメールユーザエージェントが必要
                     とします。

              D      エンベロープ受信者アドレスを持つ "Delivered-
                     To:  recipient" メッセージヘッダを前に付加し
                     ます。注意: これが 働 く た め に は  trans-
                     port_destination_recipient_limit が 1 でなけ
                     ればいけません。

              F      "From sender time_stamp" エンベロープヘッ ダ
                     をメッセージ本体の前に付加します。これは、例
                     えば UUCP ソフトウェアなどにより求めら れ ま
                     す。

              O      Postfix に与えられた受信者アドレスを持つ "X-
                     Original-To: recipient" メッセージヘッダを前
                     に 付 加 し ま す。 注意: これが働くためには
                     transport_destination_recipient_limit  が  1
                     でなければいけません。

              R      Return-Path:  メッセージヘッダをエンベロープ
                     送信者アドレスに付加します。

              h      コマンドライン $recipient ドメイン名や $nex-
                     thop   ホ スト名を小文字に変換します。これは
                     UUCP での配送に推奨されます。

              q      コマンドライン $sender$recipient アド レ
                     ス のローカル部分 (最も右側の @ 文字の左側の
                     テキスト) にある空白や他の特殊文字を RFC 822
                     の  8 ビット透過バージョンに従って引用符が付
                     けられます。これは UUCPBSMTP での配送 に
                     推奨されます。

                     結果は Postfix sendmail メール投函コマンドに
                     よるコマンドライン受信者のアドレスのパースと
                     互換です。

                     q   フ ラ グはアドレス全体だけに影響をおよぼ
                     し、$user$extension$mailbox コマンドラ
                     インマクロといった部分アドレス情報には影響し
                     ません。

              u      コマンドライン $recipient ローカル部分 (最も
                     右 側の @ 文字の左側のテキスト) を小文字に変
                     換します。これは UUCP での配送に推奨さ れ ま
                     す。

              .      "."  で始まる行の前に . を付けます。これは、
                     例えば、 BSMTP ソフトウェアで必要です。

              >      > を "From " で始まる行の前に付加します。 こ
                     れは例えば UUCP ソフトウェアなどにより求めら
                     れます。

       user=username (必須)

       user=username:groupname
              外部コマンドは username で指定された権限で実行さ れ
              ま す。ソフトウェアは root 権限またはメールシステム
              所有者権限の外部コマンドを拒否します。groupname  が
              指 定されると、対応するグループ ID が username のグ
              ループ ID のかわりに使われます。

       eol=string (オプション、デフォルト: \n)
              出力レコードのデリミタ。通常は \r\n または \n の ど
              ちらかを使います。通常の C 形式のバックスラッシュエ
              スケープシークエンスが認識されます: \a \b \f \n  \r
              \t \v \octal および \\.

       size=size_limit (オプション)
              こ の制限(バイト単位)より大きなサイズのメッセージは
              送信者へバウンスされます。

       argv=command... (必須)
              実行されるコマンド。これは最後のコマンド属性とし て
              指 定されなければいけません。コマンドは直接実行され
              ます。つまり、シェルのメタ文字はシェルコマンドの 解
              釈を受けません。

              コ マ ン ド 引 数ベクトルでは、次のマクロが認識され
              て、Postfix キューマネージャ配送要求から得た対応 す
              る情報に置き換えられます:

              ${extension}
                     このマクロは受信者アドレスの拡張部分に展開さ
                     れます。たとえば user+foo@domain というア ド
                     レスであれば、拡張部分は foo です。

                     ${extension}  を含むコマンドライン引数は、コ
                     マンドライン引数と同じ数の受信者に展開されま
                     す。

                     こ の情報は u フラグによって小文字に変換され
                     ます。

              ${mailbox}
                     このマクロは受信者アドレスのローカル部分全体
                     に 展開されます。たとえば user+foo@domain な
                     らば mailbox は user+foo です。

                     ${mailbox} を含むコマンドライン引数はコマ ン
                     ドライン引数と同じ数の受信者に展開されます。

                     この情報は u フラグによって小文字に変換さ れ
                     ます。

              ${nexthop}
                     このマクロは次に渡すホスト名に展開されます。

                     この情報は h フラグによって小文字に変換さ れ
                     ます。

              ${recipient}
                     こ の マクロは受信者アドレス全体に展開されま
                     す。

                     ${recipient} を含むコマンドライン引数はコ マ
                     ン ド ライン引数と同じ数の受信者に展開されま
                     す。

                     この情報は hqu フラグによって引用符が付け ら
                     れたり、小文字に変換されます。

              ${sender}
                     このマクロはエンベロープの送信者アドレスに展
                     開されます。

                     この情報は q フラグによって引用符が付けら れ
                     ます。

              ${size}
                     こ のマクロは Postfix から見たメッセージサイ
                     ズに展開され、これはほぼ配送されるメッセージ
                     のサイズになります。

              ${user}
                     このマクロは受信者アドレスのユーザ名部分に展
                     開 さ れ ま す。 た と え ば、 ア ド  レ  ス
                     user+foo@domain のユーザ名部分は user です。

                     ${user} を含むコマンドライン引数はコマンドラ
                     イン引数と同じ数の受信者に展開されます。

                     こ の情報は u フラグによって小文字に変換され
                     ます。

       さらに ${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  パ
              ラ メータから得ます。制限は pipe 配送エージェントに
              よって強制されます。

関連項目
       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



                                                          PIPE(8)