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