PCRE_TABLE(5) PCRE_TABLE(5) 名前 pcre_table - Postfix PCRE テーブルの書式 書式 pcre:/etc/postfix/filename 解説 Postfix メ ールシステムはアドレスの書き換えやメールのルー ティングをするためのテーブルをオプションで使います。これら の テーブルは通常は dbm または db 形式です。代わりに検索テ ーブルに Perl 互換正規表現形式で指定することができます。 Postfix が どのマップ形式をサポートしているかを見るに は、 postconf -m コマンドを使います。 PCRE テーブルの一般的な形式は: 空白とコメント 空行や `#' で始まる行は無視されます。 継続の空白 空白で始まる行は前の行から継続します。 pattern result pattern が検索文字列にマッチすると、対応する result を使います。空白で始まる行は前の行から継続します。 それぞれのパターンは perl ライクな正規表現です。表現のデリ ミタは空白や特別な意味を持つ文字を除いてどの文字も使えます (伝統的にスラッシュが使われます)。正規表現は空白を含むこと ができます。 デ フォ ル ト で は マッチは大文字・小文字の区別をしません が、2つ目のスラッシュの後に `i' フラグをつけることでこの動 作を変えられます。他のフラグもサポートされていますが、他に 便利なのは ungreedy にマッチする `U' だけです (これ以上 の 情報は PCRE のドキュメントとソースを参照して下さい)。 それぞれのパターンは検索される文字列全体に適用される正規表 現です。場合によって、文字列はクライアントのホスト名全体で あったり、クライアントの IP アドレス全体、もしくはメールア ドレス全体になったりします。従って、親ドメインや親ネットワ ー ク検索は行なわれませんし、 user@domain メールアドレスは user と domain という構成要素に分割された り、user+foo が user と foo に分割されることはありません。 パターンは検索文字列にマッチするまで、テーブルに指定された 順で適用されます。 慣例的な perl 文法 ($1, $2, etc.) を使って、マッチした表現 を結果の文字列で置き換えることも可能です。結果の文字列中の マクロは、後に空白が続かない場合に ${n} や $(n) を必要とす るかも知れません。 例 # 外行きの majordomo 爆発の防止 /^(?!owner-)(.*)-outgoing@(my.domain)$/ 550 Use ${1}@${2} instead # whatever が自ドメインである時以外 (全ての friend@ メールをバウンス # する方がよいのですが - これは単なる例です)、friend@whatever を # バウンスする。 /^friend@(?!my.domain).*$/ 550 Stick this in your pipe $0 # 複数行のエントリ。テキストは 1 行で送られます。 # /^noddy@connect.com.au$/ 550 This user is a funny one. You really don't want to send mail to them as it only makes their head spin. 関連項目 regexp_table(5) POSIX 正規表現テーブルの書式 作者 PCRE テーブル検索コードは元々次の人によって書かれました: Andrew McNamara andrewm@connect.com.au connect.com.au Pty. Ltd. Level 3, 213 Miller St North Sydney, NSW, Australia 次の人により採用され、適応されました: Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA