CANONICAL(5) CANONICAL(5)
名前
canonical - Postfix カノニカルテーブルの書式
書式
postmap /etc/postfix/canonical
postmap -q "string" /etc/postfix/canonical
postmap -q - /etc/postfix/canonical <inputfile
解説
オ プションの canonical(5) テーブルにはローカルおよび外部アドレスのアド
レスマッピングを指定します。このマッピングは cleanup(8) デーモンに よっ
て使われます。アドレスマッピングは再帰的です。
通常、canonical(5) テーブルには postmap(1) コマンドへの入力として使われ
るテキストファイルが指定されます。dbm または db 形式でインデックス化 さ
れ た結果はメールシステムが高速に検索するために使われます。テキストファ
イルを変更した後は、インデックスファイルを再構築する た め に "postmap
/etc/postfix/canonical" コマンドを実行してください。
テ ーブルが NIS や LDAP, SQL のような他の方法で提供される場合、通常のイ
ンデックス化したファイルと同様の検索がなされます。
代わりに、パターンが正規表現で与えられるような正規表現マップをテーブ ル
に使ったり、検索を TCP ベースのサーバに向けることもできます。その場合、
以下の "正規表現テーブル" や "TCP ベースのテーブル" で述べるように、 少
し異なる方法で検索がなされます。
デフォルトでは canonical(5) マッピングはメッセージヘッダアドレス (すなわち
メッセージ内に現れるアドレス)とメッセージエンベロープア ド レ ス( 例 え
ばSMTP プ ロ ト コ ル コ マ ン ド で 使われるアドレス) の両方に作用しま
す。Sendmail の S3 ルールセットを考えてもよいでしょう。
注 意: Postfix バー ジョ ン2.2 以 降 で は、 ク ラ イ ア ン ト が
local_header_rewrite_clients パ ラ メー タ に マッ チ す る か、
remote_header_rewrite_domain 設定パラメータが空でない値を指定している場
合にのみ、リモートSMTPクライアントからのメッセージヘッダを書き 換 え ま
す。Postfix 2.2 以前の動作を得るには、 "local_header_rewrite_clients =
static:all" を指定します。
典型的には、 canonical(5) テーブルをログイン名か ら Firstname.Lastname
に 置き換えるためや、古いメールシステムで作られたアドレスをきれいにする
ために使います。
canonical(5) マッピングと virtual domain サポートと混同してはいけ ま せ
ん。その目的のためには virtual(5) マップを使います。
canonical(5) マッピングとローカルエイリアスを混同してはいけません。その
目的のためには aliases(5) マップを使います。
テーブルの書式
postmap(1) コマンドへの入力の書式は以下の通りです:
pattern result
pattern がメールアドレスにマッチすると、対応する result で置き換
えます。
空行とコメント
空行 や空白だけの行は無視され、行頭の非空白文字が `#' で始まる行
も同様です。
複数行テキスト
論理行は非空白字文字で始まります。空白で始まる行は前の論理行を継
続します。
テーブルの検索順序
DB や DBM のようなインデックスファイル、もしくは NIS や LDAP、 SQL のよ
うなネットワーク上のテーブルでは、パターンは次に示す順で試行されます:
user@domain address
user@domain を address で置き換えます。この形式は最高の優先度 を
持ちます。
こ れ は古いメールシステムで作られたアドレスを整理するのに便利で
す。また、Firstname.Lastname 形式のアドレスを作るのに使うこと も
できますが、更に簡単な解決法は下を見てください。
user address
site が $myorigin と等しいか、$mydestination に挙げられていると
き、$inet_interfaces または $proxy_interfaces に挙げられていると
きに、user@site を address で置き換えます。
この形式はログイン名を Firstname.Lastname で置き換えるのに便利で
す。
@domain address
domain 内のその他のアドレスを address で置き換えます。これは最も
低い優先度です。
結果アドレスの書き換え
検索結果のアドレスは書き換えられます:
o 結 果 が @otherdomain の形の場合、結果は otherdomain の同じ user
になります。
o "append_at_myorigin=yes" の場合、"@domain" のない ア ド レ ス に
"@$myorigin" を付け加えます。
o "append_dot_mydomain=yes" の 場 合、".domain" のないアドレスに
".$mydomain" を付け加えます。
拡張アドレス
メールアドレスのローカル部分がオプションの受信者デリミタを含んでいる と
( す な わ ち user+foo@domain) 、 検 索 順 序 は 次 の ようになります:
user+foo@domain, user@domain, user+foo, user, および @domain。
propagate_unmatched_extensions パラメータは、マッチしなかった拡張アドレ
ス (+foo) が検索テーブルの結果に展開されるかどうかを制御します。
正規表現テーブル
こ のセクションではテーブルが正規表現形式で与えられた際にどのようにテー
ブル検索が変化するかを記述しています。正規表現検索テーブルの文法につ い
ては、regexp_table(5) もしくは pcre_table(5) を参照してください。
そ れぞれのパターンは検索されるアドレス全体に適用される正規表現です。従
って、user@domain メールアドレスが user と @domain という構成要素に分割
されたり、user+foo が user と foo に分割されることはありません。
パ ターンは検索文字列にマッチするまで、テーブルに指定された順で適用され
ます。
アクションはインデックス化されたファイル検索と同様であり、それに加え て
$1, $2 などをパターンのカッコで括られた部分文字列に書き換えることが可能
です。
TCP ベースのテーブル
この章は検索が TCP ベースのサーバに向けられたときに、テーブル検索がどの
ように変わるかを記述しています。TCP クライアント/サーバ検索プロトコルの
記述は tcp_table(5) を参照してください。この機能は Postfix バー ジョ ン
2.2を含めたこれまでのバージョンで使えません。
ど の検索操作も問い合わせ文字列全体を一度だけ使います。つまり、親ドメイ
ンや親ネットワーク検索が実行することはできず、 user@domain メールアドレ
ス が user@ や domain といった構成要素に分解されたり、user+foo が user
と foo に分解されることはありません。
結果はインデックス化されたファイルの検索のときと同じです。
バグ
テーブルフォーマットは慣例的な引用符を理解しません。
設定パラメータ
以下の main.cf パラメータは特にこのプログラムに関連があります。以下の文
章はパラメータの概要のみを提供します。例を含む詳細は postconf(5) を参照
してください。
canonical_classes
カノニカルアドレスマッピングを受けるアドレス。
canonical_maps
カノニカルマップテーブルのリスト。
recipient_canonical_maps
エンベロープとヘッダの受信者アドレス用のアドレスマッピング検索テ
ーブル。
sender_canonical_maps
エンベロープとヘッダの送信者アドレス用のアドレスマッピング検索テ
ーブル。
propagate_unmatched_extensions
元のアドレスから結果に拡張アドレスを展開する、アドレス書き換えや
転送などのメカニズムのリスト。canonical や virtual、 alias、for-
ward、include、generic からゼロ個以上指定します。
他の関連したパラメータ:
inet_interfaces
このシステムがメールを受け取るネットワークインターフェースのアド
レ ス 。このパラメータを変更したら、Postfix を stop および start
する必要があります。
local_header_rewrite_clients
これらのクライアントからのメールにあるメッセージヘッダアドレスを
書き換え、不完全なアドレスを $myorigin または $mydomain のドメイ
ンに更新します; その他のクライアントからのメッセージヘッダを書き
換 え たり、不完全なアドレスを remote_header_rewrite_domain パラ
メータで指定されているドメインに書き換えることはありません。
proxy_interfaces
proxy エージェントやネットワークアドレス変換を通してこのマシンが
メールを受け取る、他のインターフェース。
masquerade_classes
マ ス カ レ ードを受けるアドレスクラスのリスト: envelope_sender,
envelope_recipient, header_sender, header_recipient の 0 もし く
はそれ以上。
masquerade_domains
サブドメイン構造を隠すドメインのリスト。
masquerade_exceptions
アドレスマスカレードを行なわないユーザ名のリスト。
mydestination
このメールシステムがローカルだとみなすドメインのリスト。
myorigin
ローカルで送信されたメールに追加されるドメイン。
owner_request_special
owner-xxx や xxx-request アドレスを特別扱いします。
remote_header_rewrite_domain
こ の パラメータが空の場合、リモートクライアントからのメッセージ
ヘッダを一切書き換えません; それ以外の場合、メッセージヘッダを書
き換えて、不完全なアドレスに指定されたドメインを追加します。
関連項目
cleanup(8), メールのカノニカル化およびキュー投入
postmap(1), マッピングテーブルの作成
postconf(5), 設定パラメータ
virtual(5) バーチャルエイリアシング
README ファイル
DATABASE_README, Postfix 検索テーブルの概要
ADDRESS_REWRITING_README, アドレス書き換えのガイド
ライセンス
The Secure Mailer license はこのソフトウェアと一緒に配布されなければ い
けません。
作者
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
CANONICAL(5)