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 プロトコルコマンドで使われるアドレス) の両方に作用します。これは canonical_classes で制御されます。 注 意: 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) マップを使います。 大文字・小文字の統一 検 索 文 字列はデータベース検索前に小文字に統一されます。 Postfix 2.3で は、検索文字列は regexp: や pcre: など、検索フィールドが大文字と小文 字 の 両方にマッチするデータベースタイプでは小文字への統一はおこなわれませ ん。 テーブルの書式 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.3を含めたこれまでのバージョンで使えません。 ど の検索操作も問い合わせ文字列全体を一度だけ使います。つまり、親ドメイ ンや親ネットワーク検索が実行することはできず、 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)