MYSQL_TABLE(5)                                                  MYSQL_TABLE(5)



名前
       mysql_table - Postfix MySQL クライアントの設定

書式
       postmap -q "string" mysql:/etc/postfix/filename

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

解説
       Postfix  メールシステムはオプションでアドレス書き換えやメールルーティン
       グのテーブルを使用します。これらのテーブルは通常 dbm または db フォーマ
       ットです。

       それ以外に、検索テーブルとして MySQL データベースを指定することもできま
       す。MySQL 検索を使うには、main.cf の検索テーブルとして MySQL ソースを定
       義します。例:
           alias_maps = mysql:/etc/mysql-aliases.cf

       /etc/postfix/mysql-aliases.cf ファイルは Postfix main.cf ファイルと同じ
       書式であり、以下に示すようなパラメータを指定することができます。

後方互換性
       他の Postfix 検索テーブルとの互換性のため、MySQL パラメータ も  main.cf
       で 定義することができます。そうするためには、MySQL ソースとしてスラッシ
       ュやドットで始まらない名前を指定してください。そうすることで MySQL パラ
       メ ータはソースに定義した名前、アンダースコア、パラメータ名という形で使
       えるようになります。例えば、マップが "mysql:mysqlname" として指定された
       場合、下の "hosts" パラメータは main.cf では "mysqlname_hosts" として定
       義されます。

       注意: この形式では、MySQL ソースのパスワードは、通常 world-readable  な
       main.cf に書かれてしまいます。この形式のサポートは Postfix の将来のバー
       ジョンで削られる予定です。

       Postfix 2.2はMySQLおよびPostgreSQLに対するクエリインターフェースを拡 張
       し、 以前はPostfix LDAPクライアントでのみ使えていた機能を含むようになり
       ました。新しいインターフェースでは、SQLクエリは単一の query パラメー タ
       で 指 定 されます (より詳細は以下に記述されています)。新しい query パラ
       メータがマップ定義で指定されていない場合は、Postfixは select_fieldtablewhere_fieldadditional_conditions から構成される SQLクエリを使
       う、古いインターフェースに戻ります。古いインターフェースは徐々に廃止 さ
       れ る予定です。新しいインターフェースに移行するには、次のように設定しま
       す:

           query = SELECT [select_field]
               FROM [table]
               WHERE [where_field] = '%s'
                   [additional_conditions]

       それぞれの古いパラメータの名前ではなく、値を挟んで く だ さ い。  addi-
       tional_conditions パラメータはオプションで、空でなければ常に AND で始め
       ることに注意してください。

リストメンバーシップ
       $mynetworks や $mydestination、$relay_domains、$local_recipient_maps 等
       のようなリストを格納するために SQL を使う場合、テーブルはそれぞれのリス
       トメンバーを別々のキーで格納しなければいけないことを理解することが重 要
       です。この議論は DATABASE_README ドキュメントの "Postfix リスト対テーブ
       ル" を参照してください。

       $mydestination や $relay_domains 等でドメインの完全なリストを返し た り
       $mynetworks で IP アドレスを返すテーブルを作っては「いけません」。

       キ ーとしてマッチするそれぞれの項目と属性値を持つテーブルを作って「くだ
       さい」。SQL データベースでは、キー自身や定数を返すのは珍しいことでは あ
       りません。

MYSQL パラメータ
       hosts  Postfix  が検索するために接続しようとするホスト。UNIX ドメインソ
              ケットは unix: を指定し、TCP 接続(デフォルト)は inet: を指定しま
              す。例:
                  hosts = host1.some.domain host2.some.domain
                  hosts = unix:/file/name

              hosts は任意の順序で試され、全ての UNIX ドメインソケットを通した
              接続は TCP を通した接続の前に試されます。約1分のアイドル後に接続
              は自動的に閉じられ、必要なときに再び開かれます。Postfix バージョ
              ン 2.0 以前ではホストの順序を無作為には選びませんでした。

              「注意」: (たとえ前に inet: が付いていたとしても) ホスト名として
              localhost を指定すると、MySQL はデフォルトの UNIX ドメインソケッ
              トに接続します。MySQL をローカルホストに TCP で接続させるには 、
              次のように指定する必要があります:
                  hosts = 127.0.0.1

       user, password
              mysql サーバにログインするためのユーザ名とパスワード。例:
                  user = someone
                  password = some_password

       dbname サーバ上のデータベース名。例:
                  dbname = customer_database

       query   データベースを検索するのに使われるSQLクエリテンプレート。ここで
              %s はPostfixが解決しようとしているアドレスの代替です。例えば、
                  query = SELECT replacement FROM aliases WHERE mailbox = '%s'

              このパラメータは以下の '%' 展開をサポートしています:

              %%     これは文字としての '%' 文字で置き換えられます。

              %s      これは入力キーで置き換えられます。入力キーが予期しないメ
                     タキーを加えないことを保証するために、 SQL引用符を使い ま
                     す。

              %u      入力キーが user@domain の形のアドレスの場合、%u はアドレ
                     スのSQL引用符付きのローカル部分で置き換えられます。それ以
                     外の場合は、%u は検索文字列全体で置き換えられます。ローカ
                     ル部分が空の場合、検索は差し止められて結果を返しません。

              %d     入力キーが user@domain の形のアドレスの場合、%d はアド レ
                     スのSQL引用符付きのドメイン部分で置き換えられます。それ以
                     外の場合は、検索は差し止められて結果を返しません。

              %[SUD] queryパラメータでは、上の文字を大文字にしたものは小文 字
                     の 場合と同じように振る舞います。result_format パラメータ
                     (以下参照) で使うと、結果の値ではなく入力キーに展開されま
                     す。

              %[1-9]  パターン %1, %2, ... %9 は入力キーのドメインの対応する構
                     成要素の最も重要な順に置き換えら れ ま す。 入 力 キー が
                     user@mail.example.com の場合、%1 は com、%2 は example で
                     %3 は mail です。入力キーが完全修飾でなかったり指定された
                     パ ター ン すべてを満たすのに十分なドメイン要素がない場合
                     は、検索は差し止められて結果を返しません。

              以下に記述されている domain パラメータはアドレスの入力キーをマッ
              チ したドメインに制限します。domain パラメータが空でなければ、完
              全修飾ではないアドレスやドメインにマッチしないアドレスの SQLクエ
              リは差し止められて結果を返しません。

              こ のパラメータはPostfix 2.2で使えます。以前のリリースでは、 SQL
              クエリは別々のパラメータから構築されます: select_fieldta-
              blewhere_fieldadditional_conditions。古いパラメータから等価
              なクエリへのマッピングは:

                  SELECT [select_field]
                  FROM [table]
                  WHERE [where_field] = '%s'
                        [additional_conditions]

              WHERE 文の '%s' はエスケープされた検索文字列に展開 さ れ ま す。
              Postfix 2.2では、これらの古いパラメータは query パラメータが指定
              されていないときに使われます。

              注意: クエリパラメータの前後に引用符を付けてはいけません。

       result_format (デフォルト: %s)
              結果の属性に適用される書式のテンプレート。文字列を後置する (また
              は 前 置 する)のにもっともよく使われます。このパラメータは以下の
              '%' 拡張をサポートします:

              %%     これは文字としての '%' 文字で置き換えられます。

              %s     これは結果の属性値によって置き換えられます。結果が空の 場
                     合はスキップされます。

              %u      結果の属性値が user@domain 形式のアドレスの場合は、%u は
                     アドレスのローカル部分によって置き換えられます。 結 果 の
                     ローカル部分が空の場合はスキップされます。

              %d      結果の属性値が user@domain 形式のアドレスの場合は、%d は
                     属性値のドメイン部分によって置き換えられます。属性値が 修
                     飾されていない場合はスキップされます。

              %[SUD1-9]
                     大 文字と10進の数値の展開は結果ではなく入力キーを書き換え
                     ます。これらの振る舞いは query の記述と同じですが、実際に
                     は 入力キーは前もってわかっているため、結果テンプレートで
                     指定されたすべての情報を含まないキーの検索は省略されて 結
                     果を返しません。

              例 え ば、"result_format  =  smtp:[%s]" を使うと、mailHost 属性を
              transport(5) テーブルの基礎として使えるようにな り ま す。 結 果
              フォーマットを適用すると、複数の属性値はカンマで区切られた文字列
              として連結されます。以下で説明される  expansion_limit   お よ び
              size_limit パラメータは結果の値の数を制限できます。これは1つの値
              を返すべきであるマップに特に便利です。

              デフォルト値の %s はそれぞれの属性値がそのまま使われることを指定
              します。

              このパラメータはPostfix 2.2以降で使えます。

              注意: 結果フォーマットの周りに引用符を置いては「いけません」。

       domain (デフォルト: ドメインリストなし)
              これはドメイン名のリスト、ファイルのパス、ディレクトリです。指定
              されていると、*空でない*ローカル部分とマッチするドメインを持つ完
              全 修飾された検索キーのみが検索対象になります: 'user' 検索や裸の
              ドメイン検索、"@domain" 検索はおこなわれません。これは MySQLサー
              バでの検索負荷を劇的に削減します。
                  domain = postfix.org, hash:/etc/postfix/searchdomains

              SQL検索の対象とするドメインを保存するのにSQLを使わないようにする
              のが最もよいです。

              このパラメータはPostfix 2.2以降で使えます。

              注意: local(8) エイリアスの入力キーは常に修飾されていないた め、
              このパラメータを定義しては「いけません」。

       expansion_limit (デフォルト: 0)
              マップに対する検索で (カンマ区切りのリストとして) 返される結果要
              素の総数の制限。ゼロを設定すると制限を無効にします。制限を超える
              と 一時エラーで検索が失敗します。制限を1にすると、検索が複数の値
              を返さないことが保証されます。

       以下のパラメータは次の書式の SELECT のテンプレートを埋めるのに使えます:

           SELECT [select_field]
           FROM [table]
           WHERE [where_field] = '%s'
                 [additional_conditions]

       指 定子 %s は検索文字列で置き換えられます。また、パースエラーを起こした
       り、さらにはセキュリティ問題を起こしたりしないように、シングルクオー ト
       や他の変な文字はエスケープされます。

       Postfix 2.2ではこのインターフェースは廃止され、上で説明したような、より
       一般的な query インターフェースで置き換えられました。 query パラメー タ
       が 定義されていると、以前のパラメータは無視されます。古いインターフェー
       スは将来のリリースで削除されるかもしれないので、新しいインターフェー ス
       に移行してください。

       select_field
              SQL "select" パラメータ。例:
                  select_field = forw_addr

       table  SQL "select .. from" テーブル名。例:
                  table = mxaliases

       where_field
              SQL "select .. where" パラメータ。例:
                  where_field = alias

       additional_conditions
              SQL クエリに対する追加条件。例:
                  additional_conditions = and status = 'paid'

関連項目
       postmap(1), Postfix 検索テーブルの維持管理
       postconf(5), 設定パラメータ
       ldap_table(5), LDAP 検索テーブル
       pgsql_table(5), PostgreSQL 検索テーブル

README ファイル
       DATABASE_README, Postfix 検索テーブルの概要
       MYSQL_README, Postfix MYSQL クライアントガイド

ライセンス
       The  Secure Mailer license はこのソフトウェアと一緒に配布されなければい
       けません。

歴史
       MySQL サポートは Postfix バージョン 1.0 で導入されました。

作者
       オリジナルの実装:
       Scott Cotton, Joshua Marcus
       IC Group, Inc.

       更なる拡張:
       Liviu Daia
       Institute of Mathematics of the Romanian Academy
       P.O. BOX 1-764
       RO-014700 Bucharest, ROMANIA



                                                                MYSQL_TABLE(5)