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_expansion_filter 設定パラメータ で指定します。 エイリアスまたは ~/.forward ファイルは外部コマンドとの連携 や目的のファイル名、:include: 命令のリストを含むことができ ま す。 正 確 な記述は aliases(5) を参照して下さい。ユーザ の.forward のそれぞれの行はエイリアスの右側部分と同じ文 法 を持ちます。 あるアドレスがエイリアスを展開した中に見つかった場合、配送 はそれに代わってユーザに対してなされます。ユーザが自分自身 の ~/.forward ファイルにリストされているときは、配送は代わ りにユーザのメールボックスになされます。 空 の ~/.forward ファイルは転送しないことを意味します。 メ ー ル シ ステムが法外な量のメモリを使用するのを防ぐため に、: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" エ ンベロープヘッダをヘッダの前に付加 し、その前に送信者のエンベロープアドレスを 持っ た Deliv- ered-To: ヘッダをオプションで付加し、その前に送信者のエン ベロープアドレスを持った Return-Path: ヘッダを付加し、さら に> 文字を"From " で始まる行の前につけて、空行を加えます。 配送が行なわれている間は、メールボックスは排他的にアクセス ロックされます。問題があると、メールボックスを元の長さに戻 そうと試みます。 maildir 配送の場合は、local デーモンは受信者エンベロープア ド レスを持ったオプションの Delivered-To: ヘッダと、受信者 エンベロープアドレスを持った Return-Path: ヘッダをヘッダの 前に付加します。 外部コマンドへの配送 allow_mail_to_commands 設定パラメータは外部コマンドへの配 送を制限します。デフォルト の 設 定 (alias, forward) で は:include: ファイル内でコマンドへ配送することを禁じていま す。 コマンドはできる限り直接実行します。シェル (UNIX システ ム で は /bin/sh) に よ る 補助はコマンドがシェルのメタ文字 (magic characters) を含んでいる場合、もしくはコマ ン ド が シェルビルトインコマンドを呼び出す場合にのみ使われます。 不達状態レポートに含むために取り込まれるコマンド出力 (標準 出力およびエラー出力) の量は制限されます。コマンドは com- mand_time_limit 秒 以内に終了しない場合、強制的に終了しま す。コマンド終了コードは <sysexits.h> で定義された慣習に従 うことが望まれます。 環境変数でエクスポートされるメッセージの量は制限されます。 シェルで特別な意味を持ち得る文字はアンダースコアで置き換え られます。使える文字は command_expansion_filter 設定パラメ ータで指定します。 SHELL 受信ユーザのログインシェル。 HOME 受信ユーザのホームディレクトリ。 USER 裸の(bare)受信者名。 EXTENSION オプションの受信者アドレスの拡張部。 DOMAIN 受信者アドレスのドメイン部。 LOGNAME 裸の(bare)受信者名。 LOCAL 受信者アドレスのローカル部分全体(@ の左側)。 RECIPIENT 受信者アドレス全体。 PATH 環境変数は常にシステムに依存するデフォルトのパスに リ セットされ、TZ (タイムゾーン) 環境変数は常に変更なしに渡さ れます。 カレントのワークディレクトリはメールキューディレクト リ で す。 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 設定パラメ ータで指定された権限でおこなわれます。 標準 RFC 822 (ARPA インターネットテキストメッセージ) 診断 問題や処理は syslogd(8) に記録されます。不正なメッセ ー ジ ファ イルはキューマネージャが後で corrupt キューに移動させ られるようにマークされます。 notify_classes パラメータの設定によっては、ポストマスタ ー にバウンスやその他問題が通知されます。 バグ セキュリティ上の理由から、外部コマンドや外部ファイルのメッ セージ配送状態はファイルにチェックしません。結果として、た まにプログラムは複数回コマンドや外部ファイルに配送するかも しれません。残念ながらより安全を求めます (?)(Better safe than sorry.)。 相互再帰的なエイリアスや ~/.forward ファイルは早期に発見す ることができません。生じたメール転送ループは Delivered-To: メッセージヘッダを使うことで止めます。 設定パラメータ 以 下の main.cf パラメータは特にこのプログラムに関連があり ます。文法の詳細やデフォルト値は Postfix main.cf ファイ ル を参照して下さい。設定の変更後は postfix reload コマンドを 使ってください。 その他 alias_maps エイリアスデータベースのリスト。 expand_owner_alias owner- または companion- エイリアスを持つエイリアス に 配 送 する際には、エンベロープの送信者アドレスを owner エイリアスの左側部分のかわりに右側部分に セッ トします。 forward_path .forward ファイルの検索リスト。名前は $name 展開に 従います。 local_command_shell 外部コマンドの実行に 利 用 す る シェ ル (例 え ば /some/where/smrsh -c)。シェルが指定されると、コマン ドにシェルビルトインコマンドやメタ文字が含まれて い なくても呼び出されます。 owner_request_special owner-xxx と xxx-request アドレスを特別扱いします。 prepend_delivered_header 転送やコマンドおよびファイルへの配送 時 に、 Deliv- ered-To: ヘッダをオプションで付加します。次のうちゼ ロ個またはそれ以上を指定 し ま す: command, file, forward。 転送メールが推奨されない場合に Delivered- To: をオフにします。 recipient_delimiter 拡張アドレスから受信者を区切るデリミタ。 メールボックス配送 fallback_transport UNIX パスワードデータベースに見つからない受信者宛の メッセージ配送。このパラメータは luser_relay を上書 きします。 home_mailbox メールボックスのユーザのホームディレクトリからの 相 対パス名。maildir 形式の配送は / で終わるパス名を指 定します。 luser_relay 存在しないユーザの配送先 (@domain または address)。 address は $name の展開に従います。 mail_spool_directory UNIX 形式のメールボックスのディレクトリ。デフォルト パス名はシステムに依存します。 mailbox_command メールボックス配送に使う外部コマンド。コマンドは 受 信 者 の 権 限 (例外: root) で実行します。文字列は $name の展開に従います。 mailbox_transport UNIX パスワードデータベースに見つかる、見つからない に 関わらず、全てのローカル受信者へのメールボックス 配送に使うメッセージ配 送。 こ の パ ラ メ ー タ は luser_relay を含むメールボックス配送を制御する他の 全ての設定パラメータを上書きします。 ロック制御 deliver_lock_attempts メールボックスや外部ファイルの排他ロックを獲得し よ うと試みる回数の制限。 deliver_lock_delay 連 続して排他ロックを獲得しようと試みる間の時間の秒 数。 stale_lock_time 古いロックを外すまでの時間の制限。 リソース制御 command_time_limit 外部コマンドへの配送の時間制限。 duplicate_filter_limit エイリアスやその他の展開結果を複製するフィルタの サ イズ制限。 line_length_limit 部分的な入力行を処理するのに使うメモリの量の制限。 local_destination_concurrency_limit 同 じユーザに対する並列配送数の制限。デフォルトの制 限は default_destination_concurrency_limit パラメー タから得ます。 local_destination_recipient_limit メッ セージ配送あたりの受信者数の制限。デフォルトの 制限は default_destination_recipient_limit パラメー タから得ます。 セキュリティ制御 allow_mail_to_commands 外部コマンドへのメール配送の利用を制限します。 allow_mail_to_files 外部ファイルへのメール配送の利用を制限します。 command_expansion_filter メールボックスコマンドの $name の展開に現れてもよい 文字。不正な文字はアンダースコアで置き換え ら れ ま す。 default_privs 外 部 ファ イルやコマンドへの配送時のデフォルトの権 限。 forward_expansion_filter forward_path の $name 展開時に現れてもよい文字。 不 正な文字はアンダースコアで置き換えられます。 歴史 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