別に指示されていなくても、ここで記述される全てのパラメータは main.cf ファイルに書きます。動いている Postfix システムの パラメータを変更したら、忘れずに postfix reload を実行してください。
全てのメール:
ローカル配送:
全てのアドレスが user@domain 形式であると、多くの Postfix
コンポーネントが期待しているため、おそらくこの機能を切るべきでは
ないでしょう。
マシンが $myorigin のメインマシンではなく、一部のユーザに
メインマシンを通さずにローカルで配送したいのであれば、
virtual テーブルに user@$myorigin
から user@$myhostname へ向け直すエントリを作ってください。
host から host.$mydomain への書き換えはよくないと
主張する人もいるでしょう。そのため off にすることができるように
なっています。ローカルドメイン部分が自動的に付けられる便利さを
好む人もいます。
カノニカルマッピングはデフォルトでは使えません。 これを使うには、main.cf ファイル内の canonical_maps パラメータを編集して一つもしくはそれ以上の検索テーブルを空白 またはカンマで区切って指定してください。 例:
送信者と受信者の両方に適用されるカノニカルマップに加えて、 送信者だけや受信者だけに適用されるカノニカルマップを指定することが できます。例:
送信者および受信者カノニカルマップは共通のカノニカルマップの 前に適用されます。
送信者指定の書き換えは、汚い送信者アドレスをきれいなものに
書き換えたいが、メーラループさせることなく汚いアドレスへの
メール送信も可能にしたいときに便利です。
アドレスのマスカレードはデフォルトでは使えません。
これを使うには、main.cf ファイルの masquerade_domains
パラメータを編集して、一つもしくはそれ以上のドメイン名を
空白またはカンマで区切って指定してください。リストは左から右へと
処理され、最初にマッチしたところで処理を止めます。つまり、
ドメイン名の前に ! がつけられると、そのドメイン、またはその
サブドメインはマスカレードされません。つまり、
masquerade_exceptions 設定パラメータにはアドレスの
マスカレードを受けないユーザ名を指定します。一つもしくは
それ以上のユーザ名を空白またはカンマで区切って指定してください。
例:
デフォルトでは、Postfix は例外を持ちません。
微妙な点: デフォルトではアドレスのマスカレーディングはメッセージ
ヘッダとエンベロープ送信者アドレスにのみ適用され、エンベロープ
受信者には適用されません。これにより外部から個々のマシンのユーザへ
メールを転送する一方で、ゲートウェイマシン上でアドレス
マスカレーディングを使うことができるようになります。
エンベロープ受信者アドレスもマスカレードされるようにするには、
次のように指定してください (Postfix 20010802 以降でのみ使えます):
こうするのであれば、Postfix は個々のマシンにメールを送ることは
できません。
virtual マッピングはデフォルトでは使えません。これを使うには、
main.cf ファイル内の virtual_alias_maps パラメータを
編集し、一つもしくはそれ以上の検索テーブルを空白またはカンマで区切って
指定してください。例:
virtual エイリアスマップに見つかったアドレスは、他のバーチャル
エイリアシングを繰り返し受けますが、ループを避けるために canonical
マッピングは受けません。
Transport テーブル検索はデフォルトでは使えません。これを使うには、
main.cf ファイル内の transport_maps パラメータを編集し、
一つまたはそれ以上の検索テーブルを空白またはカンマで区切って
指定します。例:
アドレスのマスカレード
アドレスのマスカレードはあるドメインのメールゲートウェイの中に
ある全てのホストを隠したり、メールがそれぞれのマシンからではなく
ゲートウェイ自身から来たように見せかけるための手法です。
を指定すると、any.thing.foo.example.com を foo.example.com へと
削りますが、any.thing.else.example.com を example.com にはしません。
masquerade_domains = !foo.example.com example.com
は any.thing.foo.example.com と foo.example.com を変更しませんが、
any.thing.else.example.com を example.com へと削ります。
バーチャルアドレスエイリアシング
カノニカルとマスカレードマッピングを適用した後、cleanup デーモンはローカルもリモートも
関係なく、全てのメールを向けなおすために、virtual エイリアス テーブルを使います。
マッピングはエンベロープ受信者のみに影響を及ぼします; メッセージ
ヘッダやエンベロープ送信者には効果がありません。
virtual エイリアス検索はバーチャルエイリアスドメイン宛の
メールを実在するユーザのメールボックスに向けなおしたり、
存在しないドメイン宛のメールを向けなおすのに便利です。
virtual エイリアス検索は Firstname.Lastname を UNIX
ログイン名に変形するのにも使うことができますが、ローカルの
aliases の方が適切かもしれません。
メール配送方法の変更
いったんキューマネージャがメッセージの配送先を確立すると、
その配送先に対するデフォルトの配送方法が決定されます。Postfix は
それぞれ固有のデフォルトの配送方法を持つ、4つの主なアドレスクラスを
区別します。
transport テーブルはオプションで
デフォルトのメッセージ配送方法を上書きします (このテーブルは
アドレス書き換え・解決デーモンによって使われます)。
transport テーブルは特定のサイトに UUCP を使ってメールを
送ったり、同時に一つの SMTP 接続しか扱えない壊れたメールシステム
(そう、こんなシステムが存在して、しかもこんなのに実際にお金を
払っている人もいるのです) にメールを送るのにも使えます。
マッチした配送先 制御パラメータ
$mydestination または
$inet_interfaces
local
$local_transport
$virtual_mailbox_domains
virtual
$virtual_transport
$relay_domains
relay (smtp のクローン)
$relay_transport
none
smtp
$default_transport
再配置ユーザテーブル
次に、キューマネージャはそれぞれの受信者名を relocated データベースに通します。
このテーブルはアカウントを持たなくなったユーザに到達する方法や、
存在しないドメイン宛のメールの扱い方に関する情報を提供します。
このテーブルにリストされたアドレスにメールが送られると、
有益なメッセージとともにメッセージはバウンスされます。
再配置ユーザの検索はデフォルトでは使えません。これを使うには、 main.cf ファイル内の relocated_maps パラメータを編集し、 一つまたはそれ以上の検索テーブルを空白またはカンマで区切って 指定します。例:
エイリアス検索はデフォルトで使えます。デフォルトの設定は システム環境に依存しますが、典型的にはつぎのどれかです:
エイリアスデータベースファイルのパスは alias_database 設定パラメータを通して制御されます。値はシステムに依存します。 普通は次のどれかです:
セキュリティ上の理由で、配送先がコマンドやファイルの場合の
配送はエイリアスデータベースのオーナーの権限で実行されます。
root が所有するエイリアス内のコマンドやファイルへの
配送には、デフォルトユーザ ID、default_privs が使われます。
代わりに、存在しない受信者宛のメールは fallback_transport
設定パラメータに指定される、完全に異なるメッセージ配送に委任する
こともできます。詳細は local
配送エージェントを参照してください。
注意: 非 UNIX アカウント宛のメールを受け取るために luser_relay
機能を使うのであれば、
luser_relay には一つのアドレスを指定できます。
$name の展開を使うことができます。最も便利な例:
ユーザ毎の .forward ファイル
ユーザは自身へのメール配送をホームディレクトリにある .forward
とよばれるファイルで配送先を指定することで制御できます。
これらのファイルの文法は検索キーとコロンがないことを除いて、
システムエイリアスと同じです。
存在しないユーザ
ローカル配送エージェントがメッセージの受信者が存在しないことを
みつけると、メッセージはローカルで送信者にバウンスされます
("user unknown")。存在しない受信者宛のメールを他のマシンに
転送するのが望ましいときもあります。この目的のために、
luser_relay 設定パラメータを使って代わりの配送先を指定できます。
(つまり空) のように main.cf ファイルで指定する必要があります。
そうしないと、Postfix SMTP サーバは非 UNIX アカウント宛のメールを
"User unknown in local recipient table" として拒否してしまいます。
local_recipient_maps =
上のレベルへ |
基本設定 | UCE
制御 | 速度制御 | リソース制御 | アドレス操作