# -*- rd -*-

= 逆引きリファレンス --- やりたいことからやり方へ

== このドキュメントについて

「やりたいこと」をキーにして、そのやり方を見つけるためのドキュ
メントです。

== インストール

=== Debian GNU/Linuxにインストールする

((<"Debian GNU/Linuxへインストール"|install-to-debian.rd.ja>))
で説明しています。aptitudeでインストールできるので、メンテナ
ンスが楽です。

=== Ubuntuにインストールする

((<Ubuntuへインストール|install-to-ubuntu.rd.ja>))で説明して
います。aptitudeでインストールできるので、メンテナンスが楽で
す。

=== CentOSにインストールする

((<CentOSへインストール|install-to-centos.rd.ja>))で説明して
います。RPMパッケージでインストールできるので、メンテナンス
が楽です。

=== FreeBSDにインストールする

((<FreeBSDへインストール|install-to-freebsd.rd.ja>))で説明し
ています。

=== 統計情報をグラフ化する

プラットフォーム毎にドキュメントが用意されています。

  * ((<Debian用|install-options-to-debian.rd.ja#milter-manager-log-analyzer>))
  * ((<Ubuntu用|install-options-to-ubuntu.rd.ja#milter-manager-log-analyzer>))
  * ((<CentOS用|install-options-to-centos.rd.ja#milter-manager-log-analyzer>))
  * ((<FreeBSD用|install-options-to-freebsd.rd.ja#milter-manager-log-analyzer>))

== 設定: 基本編

=== [configuration-basic-find-configuration-file] 設定ファイルを見つける

インストールマニュアル通りにインストールしている場合は、カス
タマイズ用の設定ファイルは以下のようになります。

  * Ubuntu: /etc/milter-manager/milter-manager.local.conf
  * CentOS: /etc/milter-manager/milter-manager.local.conf
  * Ubuntu: /usr/local/etc/milter-manager/milter-manager.local.conf

milter-manager.local.confは新規に作成するファイルです。既定値
では、milter-managerはmilter-manager.confと同じディレクトリに
milter-manager.local.confがあると自動的に読み込みます。

=== TCP/IPでmilter-managerに接続する

((<manager.connection_spec|configuration.rd.ja#manager.connection-spec>))
で"inet:"を指定します。

  # 10025番ポートで待ち受ける。自ホストからのみ接続可。
  manager.connection_spec = "inet:10025@localhost"

=== UNIXドメインソケットでmilter-managerに接続する

((<manager.connection_spec|configuration.rd.ja#manager.connection-spec>))
で"unix:"を指定します。

  # /var/run/milter/milter-manager.sockで待ち受ける
  manager.connection_spec = "unix://var/run/milter/milter-manager.sock"

ソケットファイルのパーミッションは
((<manager.unix_socket_mode|configuration.rd.ja#manager.unix-socket-mode>))
で指定できます。

  # 同じグループのユーザは接続可能。
  manager.unix_socket_mode = 0660

ソケットファイルのグループは
((<manager.unix_socket_group|configuration.rd.ja#manager.unix-socket-group>))
で指定できます。

  # ソケットファイルは"milter"グループが所有する
  manager.unix_socket_group = "milter"

=== UNIXドメインソケットの後始末する

UNIXドメインソケット作成時に同名のファイルがある場合、ソケッ
ト作成に失敗します。そのような状況を避けるために、以下のタイ
ミングでソケットファイルを削除する設定があります。

  (1) UNIXドメインソケット作成前
  (2) UNIXドメインソケット使用後

既定値では両方とも有効になっているので、通常はソケットファイ
ルがあるという理由でソケット作成に失敗することはありません。

もし、無効にする場合は、それぞれ、以下の設定を変更します。

  (1) ((<manager.remove_unix_socket_on_create|configuration.rd.ja#manager.remove-unix-socket-on-create>))
  (2) ((<manager.remove_unix_socket_on_close|configuration.rd.ja#manager.remove-unix-socket-on-close>))

以下は、両方を無効にする設定例です。

  # ソケット作成前に既存のソケットファイルを削除しない
  manager.remove_unix_socket_on_create = false
  # ソケット使用後にソケットファイルを削除しない
  manager.remove_unix_socket_on_close = false

== 設定: 応用編

=== 特定のアカウントのみmilterを適用する

サンプルとして特定のアカウントのみ登録されているmilterを適用
する設定が組み込まれています。このサンプルを使用して、以下の
アカウントのみmilterを適用する例を示します。

  (1) test-user@example.com
  (2) test.example.comドメインのすべてのアカウント

設定は
((<milter-manager.local.conf|.#configuration-basic-find-configuration-file>))
に追記します。

  restrict_accounts_by_list("test-user@example.com",
                            /@test\.example\.com\z/)

この機能は現在はまだサンプル扱いのため、今後変更される可能性
がありますが、その場合も同様の機能は提供され続けます。変更さ
れる場合は、データベースやLDAPからのアカウント取得機能など、
より豊富な機能が備わっているはずです。
