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 設
定パラメータで指定できます。qmail 互換の maildir 配送を す
るには、/ で終わる名前を指定します。
または、ユーザごとのメールボックスは 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: を付
け、空行を加えません。
外部ファイルへの配送
配 送 フォーマットは配送先ファイル名の文法に依存します。デ
フォルトでは UNIX 形式のメールボックスフォーマットを使いま
す。 qmail 互換の maildir 配送をするには、/ で終わる名前を
指定します。
allow_mail_to_files 設定パラメータは外部ファイルへの配送を
制限します。 デ フォ ル ト の 設 定 (alias, forward) で
は:include: ファイル内でファイルへ配送することを禁じていま
す。
UNIX 形 式 の メールボックス配送の場合、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 パラメータの設定によっては、ポストマスタ ー
にバウンスやその他問題が通知されます。
バグ
セキュリティ上の理由から、外部コマンドや外部ファイルのメッ
セージ配送状態はファイルにチェックしません。結果として、た
まにプログラムは複数回コマンドや外部ファイルに配送するかも
しれません。残念なことよりも安全を求めます。
相互再帰的なエイリアスや ~/.forward ファイルは早期に発見す
ることができません。生じたメール転送ループは Delivered-To:
メッセージヘッダを使うことで止めます。
設定パラメータ
以 下の main.cf パラメータは特にこのプログラムに関連があり
ます。文法の詳細やデフォルト値は Postfix main.cf ファイ ル
を参照して下さい。設定の変更後は postfix reload コマンドを
使ってください。
その他
alias_maps
エイリアスデータベースのリスト。
biff comsat ネットワークサービスを通した新着メールの通知
を使用可能もしくは使用不能にします。
expand_owner_alias
owner- または companion- エイリアスを持つエイリアス
に 配 送 する際には、エンベロープの送信者アドレスを
owner エイリアスの左側部分のかわりに右側部分に セッ
トします。
export_environment
非 Postfix プロセスに渡される環境変数のリスト。
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
拡張アドレスから受信者を区切るデリミタ。
require_home_directory
配 送の試行前に受信者のホームディレクトリが受信者に
よりアクセス可能であることを必要とします。そうで な
ければ配送は遅延されます。
メールボックス配送
fallback_transport
UNIX パスワードデータベースに見つからない受信者宛の
メッセージ配送。このパラメータは luser_relay を上書
きします。
home_mailbox
メールボックスのユーザのホームディレクトリからの 相
対パス名。maildir 形式の配送は / で終わるパス名を指
定します。
luser_relay
存在しないユーザの配送先 (@domain または address)。
address は $name の展開に従います。
mail_spool_directory
UNIX 形式のメールボックスのディレクトリ。デフォルト
パス名はシステムに依存します。Maildir 形式の配送を
するには、/ で終わるパスを指定します。
mailbox_command
メールボックス配送に使う外部コマンド。コマンドは 受
信 者 の 権 限 (例外: root) で実行します。文字列は
$name の展開に従います。
mailbox_command_maps
メールボックス配送に使う受信者ごとの外部コマンド の
検 索 テーブル。振る舞いは mailbox_command と同じで
す。
mailbox_transport
UNIX パスワードデータベースに見つかる、見つからない
に 関わらず、全てのローカル受信者へのメールボックス
配送に使うメッセージ配 送。 こ の パ ラ メ ー タ は
luser_relay を含むメールボックス配送を制御する他の
全ての設定パラメータを上書きします。
ロック制御
deliver_lock_attempts
メールボックスや外部ファイルの排他ロックを獲得し よ
うと試みる回数の制限。
deliver_lock_delay
連 続して排他ロックを獲得しようと試みる間の時間の秒
数。
stale_lock_time
古いロックを外すまでの時間の制限。
mailbox_delivery_lock
UNIX 形式のメールボックスへの配送時に使われるファイ
ルロックの方法。デフォルトの設定はシステムに依存 し
ます。使用可能なロック方法のリストを得るには、post-
conf -l コマンドを使います。
リソース制御
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 パラメー
タから得ます。
mailbox_size_limit
メ ールボックスなど (配送時に書かれるあらゆるファイ
ル) のサイズの制限。ゼロをセットすると制限をなく し
ます。
セキュリティ制御
allow_mail_to_commands
外部コマンドへのメール配送の利用を制限します。次の
うちゼロ個以上を指定します: alias, forward, include
allow_mail_to_files
外部ファイルへのメール配送の利用を制限します。次の
うちゼロ個以上を指定します: alias, forward, include
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