REGEXP_TABLE(5)                                   REGEXP_TABLE(5)



名前
       regexp_table - Postfix 正規表現テーブルの書式

書式
       regexp:/etc/postfix/filename

       postmap -q "string" regexp:/etc/postfix/filename

       postmap -q - regexp:/etc/postfix/filename <inputfile

解説
       Postfix   メールシステムはアドレスの書き換えやメールのルー
       ティングをするためのテーブルをオプションで使います。これら
       の テーブルは通常は dbm または db 形式です。代わりに検索テ
       ーブルに POSIX 正規表現形式で指定することができます。

       Postfix が サポートしているマップ形式を見るに は、postconf
       -m コマンドを使います。

       検 索 テ ー ブルをテストするには、上の書式に記述したように
       postmap コマンドを使います。

       Postfix 正規表現テーブルの一般的な形式は:

       /pattern/flags result

       !/pattern/flags result
              pattern が検索文字列にマッチすると (しないと)、対応
              する result の値を使います。

       空行とコメント
              空 行 や 空白だけの行は無視され、行頭の非空白文字が
              `#' で始まる行も同様です。

       複数行テキスト
              論理行は非空白字文字で始まります。空白で始まる行 は
              前の論理行を継続します。

       if /pattern/flags

       if !/pattern/flags

       endif   検索文字列が pattern にマッチした (しなかった)とき
              のみ、 ifendif の間のパターンに対して検索文字列
              がマッチします。if..endif はネストできます。

              注 意: if..endif の内部のパターンの前に空白をつけな
              いでください。

       それぞれのパターンはペアのデリミタで括られた正規表現です。
       正規表現の文法は re_format(7) に記述されています。表現のデ
       リミタは空白や特別な意味を持つ文字を除いてどの文字も使えま
       す  (伝統的にスラッシュが使われます)。正規表現は空白を含む
       ことができます。

       デフォルトではマッチは大文字・小文字の区別をしません が、2
       つ 目のスラッシュの後に `i' フラグをつけることでこの動作を
       変えられます。他のフラグもサポートされていますが、他に便利
       なのものとして `x' (拡張表現文法を使わない) と `m' (複数行
       モードを有効にする、つまり改行文字を特別扱いする) がありま
       す。

       それぞれのパターンは検索キーの文字列全体に適用される正規表
       現です。場合によって、文字列はクライアントのホスト名全体で
       あったり、クライアントの IP アドレス全体、もしくはメールア
       ドレス全体になったりします。従って、親ドメインや親ネットワ
       ー ク検索は行なわれませんし、 user@domain メールアドレスは
       userdomain という構成要素に分割されたり、user+foouserfoo に分割されることはありません。

       パターンは検索文字列にマッチするまで、テーブルに指定された
       順で適用されます。

       $1, $2, etc. を使って、マッチした表現を result の文字列 で
       置き換えることも可能です。 result の文字列中のマクロは、後
       に空白が続かない場合に ${n} や $(n) を必要とするかも知れま
       せん。

SMTPD ACCESS マップの例
       # 送信者が指定するルーティングを使えなくします。これは他のドメインに
       # メールをリレーするのであれば必須です。
       /[%!@].*[%!@]/       550 Sender-specified routing rejected

       # postmaster は OK、こうすることで彼らの問題を直す方法について
       # 我々に話すことができます。
       /^postmaster@/       OK

       # 外行きの majordomo 爆発の防止
       if !/^owner-/
       /^(.*)-outgoing@(.*)$/   550 Use ${1}@${2} instead
       endif

ヘッダフィルタマップの例
       # これらはかつてジャンクメールに共通でした。
       /^Subject: make money fast/     REJECT
       /^To: friend@public\.com/       REJECT

BODY FILTER MAP の例
       # CPU サイクル節約のために、最初に base 64 エンコードされたテキストを
       # スキップします。
       ~^[[:alnum:]+/]{60,}$~          OK

       # ここにあなた自身の body パターンを置いてください。

関連項目
       pcre_table(5) PCRE テーブルの書式

作者
       regexp テーブル検索コードは元々次の人によって書かれました:
       LaMont Jones
       lamont@hp.com

       コードは次の人により貢献された 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



                                                  REGEXP_TABLE(5)