LOCAL(8) LOCAL(8) 名前 local - Postfix ローカルメール配送 書式 local [generic Postfix daemon options] 解説 local デーモンプロセスは Postfix キューマネージャから ローカル受信者へのメール配送要求を処理します。それぞれの 配送要求はキューファイル、送信者アドレス、配送先のドメイン またはホスト、そして1もしくはそれ以上の受信者を指定します。 このプログラムはmaster(8) プロセスマネージャから起動される ことを想定しています。 local デーモンはキューファイルを更新し、受取人を終ったもの としてマークするか、キューマネージャに後で再び試行すべきで あることを知らせます。配送問題のレポートはbounce(8) または defer(8) デーモンの適切な方に送られます。 システム全体およびユーザレベルのエイリアス システム管理者は1もしくはそれ以上のシステム全体に渡る sendmail スタイルのエイリアスデータベースを構成することが できます。ユーザは sendmail スタイルの ~/.forward ファイルを持つことができます。name 宛のメールはエイリアス名、 ~name/.forward の中の配送先、ユーザ name が所有するメール ボックスに配送されるか、届かないものとして送り返されます。 システム管理者は forward_path 設定パラメータを 使って ~/.forward のようなファイルのリストをカンマ/空白で 区切って指定することができます。配送時には、ローカル配送 エージェントはファイルが見つかるまでリスト中のそれぞれの パス名を試行します。forward_path パラメータは $user (受信 者名)、$home (受信者のホームディレクトリ)、$shell (受信者 のシェル)、$recipient (完全な受信者アドレス)、 $extension (受信者アドレスの拡張部)、$domain (受信者のドメイン)、local (受信者アドレスのローカル部分全体)、そして $recipient_delimiter による書き換えに従います。${name?value} および ${name:value} の形式は $name が定義されている(いない)ときに value に 展開されます。 エイリアスまたは ~/.forward ファイルは外部コマンドとの連携や 目的のファイル名、:include: 命令のリストを含むことができます。 正確な記述は aliases(5) を参照して下さい。ユーザの .forward のそれぞれの行はエイリアスの右側部分と同じ文法を持ちます。 あるアドレスがエイリアスを展開した中に見つかった場合、配送は それに代わってユーザに対してなされます。ユーザが自分自身の ~/.forward ファイルにリストされているときは、配送は代わりに ユーザのメールボックスになされます。空の ~/.forward ファイル は転送しないことを意味します。 メールシステムが法外な量のメモリを使用するのを防ぐために、 1 LOCAL(8) LOCAL(8) :include: または ~/.forward ファイルから読まれた入力レコードは line_length_limit の長さで切られます。 エイリアスや ~/.forward ファイルなどの展開中、プログラムは 配送が重複するのを避けようとします。duplicate_filter_limit 設定パラメータは記憶する受信者の数を制限します。 メール転送 信頼性のため、転送されたメールは新しいメッセージとして再び 送信され、その結果それぞれの受信者は別々の配送状態レコード がファイルに記録されます。 早期にメール転送ループを止めるために、ソフトウェアはエンベロープの 受信者アドレスを持つ Delivered-To: ヘッダを付け加えます。 すでに Delivered-To: ヘッダに載っている受信者へのメールが 届くと、メッセージはバウンスされます。 メールボックスへの配送 デフォルトのユーザごとのメールボックスは UNIX メール スプールディレクトリ内のファイル((/var/mail/user または /var/spool/mail/user) です; 場所は mail_spool_directory 設定パラメータで指定できます。 または、ユーザごとのメールボックスは home_mailbox 設定 パラメータで指定された名前のユーザのホームディレクトリ内の ファイルにすることもできます。相対パス名を指定します。qmail 互換の maildir 配送をするには、/ で終わる名前を指定します。 メールボックスへの配送は mailbox_command 設定パラメータで 指定される外部コマンドに委託することができます。コマンドは 受信者ユーザの権限で実行します(例外: ルートとして配送する 場合は default_privs の権限で実行します)。 Mailbox 配送は master.cf で指定されるメッセージ配送の代表 的な代替方法でしょう。mailbox_transport 設定パラメータは UNIX のパスワードデータベースに名前が見つかるかどうかに 関わらず、全てのローカルの受信者に対して使われるメッセージ 配送を指定します。fallback_transport パラメータは UNIX パス ワードデータベースで見つからない受信者宛のメール配送を指定 します。 UNIX 形式のメールボックス配送では、local デーモンは "From sender time_stamp" エンベロープヘッダをヘッダの前に 付加し、その前に 送信者のエンベロープアドレスを持った Delivered-To: ヘッダを付加し、その前に送信者のエンベロープ アドレスを持った Return-Path: ヘッダを付加し、さらに > 文字 を "From " で始まる行の前につけて、空行を加えます。配送が 行なわれている間は、メールボックスは排他的にアクセスロック されます。 2 LOCAL(8) LOCAL(8) 問題があると、メールボックスを元の長さに戻そうと試みます。 maildir 配送の場合は、local デーモンは 受信者エンベロープ アドレスを持った Delivered-To: ヘッダと、受信者エンベロー プアドレスを持った Return-Path: ヘッダをヘッダの前に付加 します。 外部コマンドへの配送 allow_mail_to_commands 設定パラメータは外部コマンドへの配 送を制限します。デフォルトの設定(alias, forward)では :include: ファイル内でコマンドへ配送することを禁じています。 コマンドはできる限り直接実行します。シェル(UNIX システムで は /bin/sh) による補助はコマンドがシェルのメタ文字 (magic characters)を含んでいる場合、もしくはコマンドがシェルビル トインコマンドを呼び出す場合にのみ使われます。 不達状態レポートに含むために取り込まれるコマンド出力(標準 出力およびエラー出力)の量は制限されます。コマンドは command_time_limit 秒以内に終了しない場合、強制的に終了し ます。コマンド終了コードは <sysexits.h> で定義された慣習に 従うことが望まれます。 環境変数でエクスポートされるメッセージの量は制限されます。 シェルで特別な意味を持ち得る文字はアンダースコアで置き換 えられます。使える文字は command_expansion_filter 設定 パラメータで指定します。 SHELL 受信ユーザのログインシェル。 HOME 受信ユーザのホームディレクトリ。 USER 裸の(bare)受信者名。 EXTENSION オプションの受信者アドレスの拡張部。 DOMAIN 受信者アドレスのドメイン部。 LOGNAME 裸の(bare)受信者名。 LOCAL 受信者アドレスのローカル部分全体(@ の左側)。 RECIPIENT 受信者アドレス全体。 PATH 環境変数は常にシステムに依存するデフォルトのパスに リセットされ、TZ (タイムゾーン)環境変数は常に変更なしに 3 LOCAL(8) LOCAL(8) 渡されます。 カレントのワークディレクトリはメールキューディレクトリです。 local デーモンは "From sender time_stamp" エンベロープヘッ ダを各メッセージの前に付け、さらに受信者のエンベロープアド レスを持った Delivered-To: ヘッダを付け、その前に送信者の エンベロープアドレスを持った Return-Path: を付け、空行を 加えます。 外部ファイルへの配送 allow_mail_to_files 設定パラメータは外部ファイルへの配送を 制限します。デフォルトの設定(alias,forward)では :include: ファイル内でファイルへ配送することを禁じています。qmail 互換の maildir 配送をするには、/ で終わるパス名を指定しま す。 local デーモンは"From sender time_stamp" エンベロープヘッダ をヘッダの前に付加し、その前に 送信者のエンベロープアドレス を持った Delivered-To: ヘッダを付加し、さらに > 文字を "From " で始まる行の前につけて、空行を加えます。送信者の エンベロープアドレスは Return-Path: ヘッダから得られます。 配送先が通常のファイルであれば、配送中は排他的にアクセス するためにロックします。問題があれば、メールボックスを元の 長さに戻そうと試みます。 maildir 配送の場合は、local デーモンは 受信者エンベロープ アドレスを持った Delivered-To: ヘッダをヘッダの前に付加し ます。送信者のエンベロープアドレスは Return-Path: ヘッダ から得られます。 アドレス拡張 オプションの recipient_delimiter 設定パラメータは拡張アド レス部をローカル受信者名から分離する方法を指定します。 例えば、"recipient_delimiter = +" とすると、name+foo 宛 のメールはエイリアスの name+foo または エイリアスの name、 ~name/.forward+foo または ~name/.forward にリストされた 配送先、ユーザ name が所有するメールボックスに配送するか、 配送できないとして送り返されます。 いずれの場合も local デーモンは `Delivered-To: name+foo' ヘッダ行を前に付加します。 配送の権限 外部のファイルや外部コマンドへの配送は、配送がなされたもの を受けとったユーザの権限で実行されます。ユーザがいない場合 には、local デーモンは :include: ファイルやエイリアスデー タベースの所有者の権限を使います。これらのファイルがスーパ ーユーザの所有であるときは、配送は default_privs 設定パラ メータで指定された権限でおこなわれます。 4 LOCAL(8) LOCAL(8) 標準 RFC 822 (ARPA インターネットテキストメッセージ) 診断 問題や処理は syslogd(8) に記録されます。不正なメッセージ ファイルはキューマネージャが後で corrupt キューに移動させ られるようにマークされます。 notify_classes パラメータの設定によっては、ポストマスターに バウンスやその他問題が通知されます。 バグ セキュリティ上の理由から、外部コマンドや外部ファイルのメッ セージ配送状態はファイルにチェックしません。結果として、 たまにプログラムは複数回コマンドや外部ファイルに配送する かもしれません。残念ながらより安全を求めます(?)(Better safe than sorry.)。 相互再帰的なエイリアスや ~/.forward ファイルは早期に発見す ることができません。生じたメール転送ループは Delivered-To: メッセージヘッダを使うことで止めます。 設定パラメータ 以下の main.cf パラメータは特にこのプログラムに関連があります。 文法の詳細やデフォルト値は main.cf ファイルを参照して下さい。 設定の変更後は postfix reload コマンドを使ってください。 その他 alias_maps エイリアスデータベースのリスト。 forward_path .forward ファイルの検索リスト。名前は $name 展開に 従います。 local_command_shell 外部コマンドの実行に利用するシェル(例えば /some/where/smrsh -c)。シェルが指定されると、コマン ドにシェルビルトインコマンドやメタ文字が含まれてい なくても呼び出されます。 owner_request_special owner-xxx と xxx-request アドレスを特別扱いします。 recipient_delimiter 拡張アドレスから受信者を区切るデリミタ。 メールボックス配送 fallback_transport UNIX パスワードデータベースに見つからない受信者宛の 5 LOCAL(8) LOCAL(8) メッセージ配送。このパラメータは luser_relay を上書 きします。 home_mailbox メールボックスのユーザのホームディレクトリからの相対 パス名。maildir 形式の配送は / で終わるパス名を指定 します。 luser_relay 存在しないユーザの配送先(@domain または address)。 アドレスは $name の展開に従います。 mail_spool_directory UNIX 形式のメールボックスのディレクトリ。デフォルト パス名はシステムに依存します。 mailbox_command メールボックス配送に使う外部コマンド。コマンドは受信 者の権限(例外: root)で実行します。文字列は $name の 展開に従います。 mailbox_transport UNIX パスワードデータベースに見つかる、見つからない に関わらず、全てのローカル受信者へのメールボックス 配送に使うメッセージ配送。このパラメータは luser_relay を含むメールボックス配送を制御する他の 全ての設定パラメータを上書きします。 Locking controls deliver_lock_attempts メールボックスや外部ファイルの排他ロックを獲得しよう と試みる回数の制限。 deliver_lock_delay 連続して排他ロックを獲得しようと試みる間の時間の秒数。 stale_lock_time 古いロックを外すまでの時間の制限。 Resource controls command_time_limit 外部コマンドへの配送の時間制限。 duplicate_filter_limit エイリアスやその他の展開結果を複製するフィルタの サイズ制限。 line_length_limit 部分的な入力行を処理するのに使うメモリの量の制限。 6 LOCAL(8) LOCAL(8) local_destination_concurrency_limit 同じユーザに対する並列配送数の制限。デフォルトの制 限は default_destination_concurrency_limit パラ メータから得ます。 local_destination_recipient_limit メッセージ配送あたりの受信者数の制限。デフォルトの 制限は default_destination_recipient_limit パラメー タから得ます。 Security controls allow_mail_to_commands 外部コマンドへのメール配送の利用を制限します。 allow_mail_to_files 外部ファイルへのメール配送の利用を制限します。 command_expansion_filter メールボックスコマンドの $name の展開に現れてもよい 文字。不正な文字はアンダースコアで置き換えられます。 default_privs 外部ファイルやコマンドへの配送時のデフォルトの権限。 歴史 Delivered-To: ヘッダは Daniel Bernstein による qmail シス テムで登場しました。 maildir 構造は Daniel Bernstein による qmail システムで登場 しました。 関連項目 aliases(5) エイリアスデータベースの書式 bounce(8) 不達状態レポート postalias(1) エイリアスデータベースの作成・更新 syslogd(8) システムロギング qmgr(8) キューマネージャ ライセンス 安全なメーラライセンス(The Secure Mailer license)はこのソフト ウェアと一緒に配布されなければいけません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA 7