CANONICAL(5) CANONICAL(5)
名前
canonical - Postfix カノニカルテーブルの書式
書式
postmap /etc/postfix/canonical
postmap -q "string" /etc/postfix/canonical
postmap -q - /etc/postfix/canonical <inputfile
解説
オプションの canonical テーブルにはローカルおよび外部アドレスのアドレス
マッピングを指定します。このマッピングは cleanup(8) デーモンによって 使
われます。アドレスマッピングは再帰的です。
通 常、canonical テーブルには postmap(1) コマンドへの入力として使われる
テキストファイルが指定されます。dbm または db 形式でインデックス化さ れ
た 結果はメールシステムが高速に検索するために使われます。テキストファイ
ルを変更した後は、インデックスファイルを再構 築 す る た め に postmap
/etc/postfix/canonical コマンドを実行してください。
テ ーブルが NIS や LDAP, SQL のような他の方法で提供される場合、通常のイ
ンデックス化したファイルと同様の検索がなされます。
代わりに、パターンが正規表現で与えられるような正規表現マップをテーブ ル
に使ったり、検索を TCP ベースのサーバに向けることもできます。その場合、
以下の "正規表現テーブル" や "TCP ベースのテーブル" で述べるように、 少
し異なる方法で検索がなされます。
canonical マッピングはメッセージヘッダアドレス(すなわちメッセージ内に現
れるアドレス)とメッセージエンベロープアドレス(例えば SMTP プロトコル コ
マ ンドで使われるアドレス)の両方に作用します。Sendmail の S3 ルールセッ
トを考えてもよいでしょう。
典型的には、 canonical テーブルをログイン名から Firstname.Lastname に置
き 換えるためや、古いメールシステムで作られたアドレスをきれいにするため
に使います。
canonical マッピングと virtual domain サポートと混同してはいけません 。
その目的のためには virtual(5) マップを使います。
canonical マッピングとローカルエイリアスを混同してはいけません。その目
的のためには 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 で置き換えられます。これは最
も低い優先度です。
上の全ての形式は、 address が @otherdomain の形式のとき、結果はotherdo-
main の同じユーザになります。
拡張アドレス
メールアドレスのローカル部分がオプションの受信者デリミタを含んでいる と
( す な わ ち 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.1 では使えません。
ど の検索操作も問い合わせ文字列全体を一度だけ使います。つまり、親ドメイ
ンや親ネットワーク検索が実行することはできず、 user@domain メールアドレ
ス が user@ や domain といった構成要素に分解されたり、user+foo が user
と foo に分解されることはありません。
結果はインデックス化されたファイルの検索のときと同じです。
バグ
テーブルフォーマットは慣例的な引用符を理解しません。
設定パラメータ
以下の main.cf パラメータは特にこのプログラムに関連があります。以下の文
章はパラメータの概要のみを提供します。例を含む詳細は postconf(5) を参照
してください。
canonical_maps
カノニカルマップテーブルのリスト。
recipient_canonical_maps
エンベロープとヘッダの受信者アドレス用のアドレスマッピング検索テ
ーブル。
sender_canonical_maps
エンベロープとヘッダの送信者アドレス用のアドレスマッピング検索テ
ーブル。
propagate_unmatched_extensions
元のアドレスから結果に拡張アドレスを展開する、アドレス書き換えや
転 送 な ど の メ カニズムのリスト。canonical や virtual、 alias
、forward、include からゼロまたはそれ以上を指定します。
他の関連したパラメータ:
inet_interfaces
このシステムがメールを受け取るネットワークインターフェースのアド
レ ス 。このパラメータを変更したら、Postfix を stop および start
する必要があります。
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 アドレスを特別扱いします。
関連項目
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)