![]() |
![]() |
![]() |
milter managerリファレンスマニュアル | ![]() |
---|
以下の規則に従います。
ライセンスが明記してあるファイル: そのライセンス
コマンド: GPL3(license/gpl.txt)
ドキュメント: GFDL(license/fdl.txt)
Webインターフェイス: AGPL3(license/agpl.txt)
ライブラリ: LGPL3(license/lgpl.txt)
具体的には以下の通りです。
ライセンスが明記してあるファイル:
binding/ruby/lib/milter/compatible.rb: Ruby's
コマンド: GPL3
src/以下
tool/直下
ドキュメント: GFDL
README, README.ja
doc/以下
Webインターフェイス: AGPL3
admin/以下(次のリリースから収録予定)
ライブラリ: LGPL3
上記以外
milter managerはmilter効果的に利用するためのmilterです。
milter managerを導入することにより、MTAが行っていたmilter管理 をmilter managerが行うことになるため、以下のような利点があり ます。
milter管理コストを減らすことができる
milterを柔軟に組み合わせることができる
詳細は はじめに に書いてありま す。
milterをサポートしたMTA
Sendmail >= 8.13.8
Postfix >= 2.3.3 (ただし、Postfixがサポートしているmilterの機能のみ利 用可能)
GLib >= 2.12.3
Ruby >= 1.8.5
Ruby/GLib2 (Ruby-GNOME2) >= 0.16.0
UNIX系OS
Linux >= 2.6.18
FreeBSD
LinuxではCentOS 5.2、Ubuntu 8.04 TLS上で動作することを想定し ています。そのため、各ディストリビューションに含まれているソ フトウェアに関しては、そのバージョンのソフトウェアで動作する ことを想定しています。
tar.gz: <URL:http://sourceforge.net/project/showfiles.php?group_id=236233>
Subversion:
% svn co https://milter-manager.svn.sourceforge.net/svnroot/milter-manager/milter-manager/trunk milter-manager
milter-managerコマンドはbin/以下ではなくsbin/以下にインストー ルされることに注意してください。非常に多くの場合、一般ユーザ はsbin/にパスが通っていないので、フルパスで起動します。
configure時に--prefixオプションを指定していない場合は /usr/local/sbin/以下にインストールされているので以下のように なります。
% /usr/local/sbin/milter-manager --help
インストールが成功していれば、使用できるオプションが表示され ます。オプションの詳細は以下の通りです。まずは、--show-configオ プションで設定内容を確認するとよいでしょう。
% /usr/local/sbin/milter-manager --show-config
指定できるオプションは設定ファイル中の値を上書きします。
--help |
利用できるオプションを表示して終了します。 |
--connection-spec=SPEC |
接続を待ち受けるソケットを指定します。SPECの書式は次のう ちのどれかです。
例:
設定ファイル中の「manager.connection_spec」の値を上書きし ます。 |
--config-dir=DIRECTORY |
設定ファイルのあるディレクトリを指定します。 milter-managerは、まず、DIRECTORY/milter-manager.confの 読み込みを試みます。もし、見つからなかった場合はシステム 標準の場所にあるmilter-manager.confを読み込みます。 |
--pid-file=FILE |
milter-managerのプロセスIDをFILEに保存します。 設定ファイル中の「manager.pid_file」の値を上書きします。 |
--user-name=NAME |
milter-managerをNAMEユーザの権限で実行します。 milter-managerはroot権限で起動しなければいけません。 設定ファイル中の「security.effective_user」の値を上書きします。 |
--group-name=NAME |
milter-managerをNAMEグループの権限で実行します。 milter-managerはroot権限で起動しなければいけません。 設定ファイル中の「security.effective_group」の値を上書きします。 |
--daemon |
端末を切り離し、バックグラウンドでデーモンプロセスとして動 作します。運用時はデーモンプロセスで動作させることをお勧 めします。 設定ファイル中の「manager.daemon」の値を上書きします。 |
--no-daemon |
このオプションより前に指定した--daemonオプションを無効にし ます。 |
--show-config |
設定内容を表示して終了します。設定内容はそのまま設定ファ イルに使える書式で表示されます。登録されているmilterを確 認する場合や、milter-managerの問題を報告する場合などで有 用です。 |
--verbose |
実行時のログをより詳細に出力します。ログはsyslogのmailファ シリティで出力します。デーモンプロセスになっていない場合 は標準出力にもログが出力されます。 「MILTER_LOG_LEVEL=all」というように環境変数を設定している 場合と同じ効果があります。 |
--version |
バージョンを表示して終了します。 |
milter managerにはいくつか便利なツールが付属されていて、bin/ 以下にインストールされます。
milter-test-server: MTA側のmilterプロトコルの機能を提供 する。MTA無しでmilterの動作をテストするために使用するこ とができる。
milter-test-client: MTA側から渡ってきた情報を表示するだ けのmilter。MTA側から渡っている情報を確認するために使用 することができる。
milter-performance-check: MTAの性能を計測するSMTPクライ アント。
milter-test-serverはMTA側のmilterプロトコルを話します。つまり、 MTA無しでmilterに接続することができます。現時点では、同様のツー ルは存在しないため、MTA+milterではなくmilter単体のテストを行 うためには有用なツールです。例えば、以下のような用途に利用で きます。
milterの性能計測
milterの動作確認
milter-test-serverは実行時間を表示するので、簡単な性能計測に も利用できます。このとき、MTAとは関係なくmilter単体での実行時 間を確認できるため、MTA経由で試す場合よりも問題点の発見が容易 になります。
milter-test-serverはヘッダや本文が変更された場合は、変更され た内容を表示します。そのため、ヘッダや本文を変更するmilterの テストも容易に行うことができます。Cutterなどと組み合わせて自 動化された単体テストを作成することもできます。
--help |
利用できるオプションを表示して終了します。 |
--connection-spec=SPEC |
接続先のmilterのソケットを指定します。SPECの書式は次のう ちのどれかです。
例:
|
--connect-host=HOST |
接続元のホスト名としてHOSTを使用します。 このホスト名はmilterのxxfi_connect()コールバックに渡りま す。 |
--connect-address=SPEC |
接続元のアドレスとしてSPECを使用します。SPECの書式 は--connection-specの書式と同じです。 このアドレスはmilterのxxfi_connect()コールバックに渡りま す。 |
--helo-fqdn=FQDN |
HELO/EHLO時の引数としてFQDNを使用します。 このFQDNはmilterのxxfi_helo()コールバックに渡ります。 |
--from=FROM |
MAIL FROM時の引数としてFROMを使用します。 このアドレスはmilterのxxfi_envfrom()コールバックに渡ります。 |
--recipient=RECIPIENT |
RCPT TO時の引数としてRECIPIENTを使用します。複数の宛先を 指定したい場合は--recipientオプションを複数回指定してく ださい。 このアドレスはmilterのxxfi_envrcpt()コールバックに渡りま す。xxfi_envrcpt()は1つの宛先につき1回呼ばれるので、宛先 が複数個ある場合はその分だけxxfi_envrcpt()が呼ばれます。 |
--header=NAME:VALUE |
名前がNAMEで値がVALUEのヘッダを追加します。複数のヘッダ を追加したい場合は--headerオプションを複数回指定してくだ さい。 このヘッダはmilterのxxfi_header()コールバックに渡ります。 xxfi_header()は1つのヘッダにつき1回呼ばれるので、ヘッダ が複数個ある場合はその分だけxxfi_header()が呼ばれます。 |
--body=CHUNK |
本文の一片としてCHUNKを追加します。複数のまとまりを追加 する場合は--bodyオプションを複数回指定してください。 この本文のまとまりはmilterのxxfi_body()コールバックに渡り ます。xxfi_body()は1つのまとまりにつき1回呼ばれるので、 まとまりが複数個ある場合はその分だけxxfi_body()が呼ばれま す。 |
--unknown=COMMAND |
未知のSMTPコマンドとしてCOMMANDを使います。 このコマンドはmilterのxxfi_unknown()コールバックに渡りま す。xxfi_unknown()コールバックは、xxfi_envrcpt()コールバッ クとxxfi_data()コールバックの間に呼ばれます。 |
--mail-file=PATH |
メールの内容としてPATHにあるメールを使います。メール中に From:やTo:があった場合は、それらの値を送信元や宛先のアド レスとして使用します。 |
--output-message |
milter適用後のメッセージを表示します。ヘッダを追加・削除 したり、本文を置換するmilterの動作を確認したい場合はこの オプションを指定してください。 |
--verbose |
実行時のログをより詳細に出力します。 「MILTER_LOG_LEVEL=all」というように環境変数を設定している 場合と同じ効果があります。 |
--version |
バージョンを表示して終了します。 |
milter-test-clientはMTA側から渡ってきた情報を表示するだけの milterです。マクロも含めてMTA側から渡っている情報を表示する ので、MTA側のmilterの設定を確認するために利用できます。
Postfixのアーカイブの中にも同様のツールがあります。 src/milter/内にあるtest-milter.cがそれで、Postfixのmilterの実 装のテストにも使っているようです。ただし、test-milterはマクロ までは表示してくれません。もし、マクロを利用しているmilterが 期待通りに動かない場合の問題調査を行うのであれば、 milter-test-clientが役立つでしょう。
--help |
利用できるオプションを表示して終了します。 |
--connection-spec=SPEC |
接続を待ち受けるソケットを指定します。SPECの書式は次のう ちのどれかです。
例:
|
--verbose |
実行時のログをより詳細に出力します。 「MILTER_LOG_LEVEL=all」というように環境変数を設定している 場合と同じ効果があります。 |
--version |
バージョンを表示して終了します。 |
milter-performance-checkはMTAの性能を計測するSMTPクライアント です。milter-test-serverでmilterのみの性能を計測し、 milter-performance-checkでMTAとmilterを合わせた性能を計測する という住み分けです。
同様のツールにはPostfix付属のsmtp-sourceがあります。どちらも、 同時に複数のSMTPセッションを張って一斉にメールを送信すること ができます。機能的にはsmtp-sourceの方が高機能です。
milter-performance-checkが便利なのはSMTPセッションの時間のみ を計測してくれることです。smtp-sourceではtimeコマンドと組み合 わせるなどして、smtp-source全体の実行時間を計測します。
実際は、SMTPセッションの時間のみでも、ツール全体の実行時間で もそれほど違いはでないと思います。また、テスト用のメール総数 を多くすればするほど、SMTPセッションにかかる時間が大きくなり、 ツール自体の実行時間による影響は小さくなります。
milter-performance-checkが提供している機能で十分な時は、 milter-performance-checkを利用し、それでは不十分な時は smtp-sourceを利用するとよいでしょう。
--help |
利用できるオプションを表示して終了します。 |
--smtp-server=SERVER |
接続先のSMTPサーバを指定します。 既定値はlocalhostです。 |
--smtp-port=PORT |
接続先のSMTPサーバのポート番号指定します。 既定値は25です。 |
--helo-fqdn=FQDN |
HELOコマンドでFQDNを使います。 既定値はlocalhost.localdomainです。 |
--from=FROM |
MAILコマンドのアドレスにFROMを使います。 既定値はfrom@example.comです。 |
--recipient=RECIPIENT |
RCPTコマンドのアドレスにRECIPIENTを使います。複数の宛先を 指定する場合は複数回このオプションを指定してください。 既定値は[to@example.com]です。 |
--n-mails=N |
合計でN個のメールを送信します。各メールは一斉に送信を開始します。 既定値は100です。 |