.\" DO NOT MODIFY THIS FILE! it was generated by rd2
.TH MILTER\-PERFORMANCE\-CHECK 1 "January 2023" "milter manager" "milter managerのマニュアル"
.SH 名前
.PP
milter\-performance\-check \- MTAのパフォーマンスを計るプログラム
.SH 書式
.PP
\&\fBmilter\-performance\-check\fP [\fIオプション ...\fP]
.SH 説明
.PP
milter\-performance\-checkはMTAの性能を計測するSMTPクライアント です。milter\-test\-serverでmilterのみの性能を計測し、 milter\-performance\-checkでMTAとmilterを合わせた性能を計測する という住み分けです。
.PP
同様のツールにはPostfix付属のsmtp\-sourceがあります。どちらも、 同時に複数のSMTPセッションを張って一斉にメールを送信すること ができます。機能的にはsmtp\-sourceの方が高機能です。
.PP
milter\-performance\-checkが便利なのはSMTPセッションの時間のみ を計測してくれることです。smtp\-sourceではtimeコマンドと組み合 わせるなどして、smtp\-source全体の実行時間を計測します。
.PP
実際は、SMTPセッションの時間のみでも、ツール全体の実行時間で もそれほど違いはでないと思います。また、テスト用のメール総数 を多くすればするほど、SMTPセッションにかかる時間が大きくなり、 ツール自体の実行時間による影響は小さくなります。
.PP
milter\-performance\-checkが提供している機能で十分な時は、 milter\-performance\-checkを利用し、それでは不十分な時は smtp\-sourceを利用するとよいでしょう。
.SH オプション
.TP
.fi
.B
\-\-help
利用できるオプションを表示して終了します。
.TP
.fi
.B
\-\-smtp\-server=SERVER
接続先のSMTPサーバを指定します。

既定値はlocalhostです。
.TP
.fi
.B
\-\-smtp\-port=PORT
接続先のSMTPサーバのポート番号指定します。

既定値は25です。
.TP
.fi
.B
\-\-connect\-host=HOST
接続元のホスト名を指定します。

PostfixのXCLIENT SMTP拡張のNAMEを利用するのでsmtpd_authorized_xclient_hostsを適切に設定する必要があります。
.TP
.fi
.B
\-\-connect\-address=ADDRESS
接続元のアドレスを指定します。

PostfixのXCLIENT SMTP拡張のADDRを利用するのでsmtpd_authorized_xclient_hostsを適切に設定する必要があります。
.TP
.fi
.B
\-\-helo\-fqdn=FQDN
HELOコマンドでFQDNを使います。

既定値はlocalhost.localdomainです。
.TP
.fi
.B
\-\-starttls=HOW
1.6.9から使用可能。

STARTTLSを使うかどうかを指定します。指定可能な
.I HOW
は 以下の通りです。

.TP
.fi
.B
.B auto
MTAがSTARTTLSをサポートしている場合はSTARTTLSを使い ます。（既定値）
.TP
.fi
.B
.B always
常にSTARTTLSを使います。
.TP
.fi
.B
.B disable
STARTTLSを使いません。

既定値は
.B auto
です。
.TP
.fi
.B
\-\-auth\-user=USER
1.6.9から使用可能。

SMTP認証のユーザ名として
.I USER
を使います。

既定値はありません。
.TP
.fi
.B
\-\-auth\-password=PASSWORD
1.6.9から使用可能。

SMTP認証のパスワードとして
.I PASSWORD
を使います。

既定値はありません。
.TP
.fi
.B
\-\-auth\-mechanism=MECHANISM
1.6.9から使用可能。

SMTP認証の方法として
.I MECHANISM
を使います。指定可能な
.I MECHANISM
は以下の通りです。

.TP
.fi
.B
.B auto
MTAがサポートしている認証方式を検出してそれを使い ます。（既定値）
.TP
.fi
.B
.B plain
常にPLAINを使用します。
.TP
.fi
.B
.B login
常にLOGINを使用します。
.TP
.fi
.B
.B cram_md5
または
.B cram\-md5
常にCRAM\-MD5を使用します。

既定値は
.B auto
です。
.TP
.fi
.B
\-\-auth\-map=FILE
1.6.9から使用可能。

接続するMTAのアドレス・ポート番号ごとにSMTP認証の設定を
.I FILE
から読み込みます。
.I FILE
の書式は以下のよう になっており、Postfixの smtp_sasl_password_mapsでも使えます。

.nf
\&    SERVER1:PORT USER1:PASSWORD1
\&    SERVER2:PORT USER2:PASSWORD2
\&    ...
.fi

「smtp.example.com」の「submissionポート」（587番ポート） 宛てのメールは「send\-user」ユーザ・「secret」パスワード を使うという設定は以下の通りです。

.nf
\&    smtp.example.com:587 send\-user:secret
.fi

既定値はありません。
.TP
.fi
.B
\-\-from=FROM
MAILコマンドのアドレスにFROMを使います。

既定値はfrom@example.comです。
.TP
.fi
.B
\-\-force\-from=FROM
送信するメールファイルを指定した場合でも、ファイル中にあ るFrom:の値ではなく、FROMをMAILコマンドのアドレスに使いま す。

既定値はありません。
.TP
.fi
.B
\-\-recipient=RECIPIENT
RCPTコマンドのアドレスにRECIPIENTを使います。複数の宛先を 指定する場合は複数回このオプションを指定してください。

既定値は[to@example.com]です。
.TP
.fi
.B
\-\-force\-recipient=RECIPIENT
送信するメールファイルを指定した場合でも、ファイル中にあ るTo:の値ではなく、RECIPIENTをRCPTコマンドのアドレスに使 います。複数の宛先を指定する場合は複数回このオプションを 指定してください。

既定値はありません。
.TP
.fi
.B
\-\-n\-mails=N
合計でN個のメールを送信します。複数のメールが同時に送信さ れます。同時に最大で何通送るかは
.BR \-\-n\-concurrent\-connections
で指定します。

既定値は100です。
.TP
.fi
.B
\-\-n\-additional\-lines=N
メールの本文にN行追加します。

既定値はありません。（追加しません。）
.TP
.fi
.B
\-\-n\-concurrent\-connections=N
同時に最大N接続でメールを送信します。

既定値は10です。
.TP
.fi
.B
\-\-period=PERIOD
PERIOD（単位は秒、分、時間のどれか）の間に指定されたメー ルを送信します。各メールは間隔内で平均的に送信します。単 位を省略した場合は秒として扱われます

例（送信メール数を100とする）:
.IP
.B
\(bu
\-\-period=5    # 0.05秒間隔で送信（5 / 100）
.IP
.B
\(bu
\-\-period=50s  # 0.5秒間隔で送信（50 / 100）
.IP
.B
\(bu
\-\-period=10m  # 6秒間隔で送信（60 * 10 / 100）
.IP
.B
\(bu
\-\-period=0.5h # 18秒間隔で送信（60 * 60 * 0.5 / 100）

既定値はありません。
.TP
.fi
.B
\-\-interval=INTERVAL
INTERVAL（単位は秒、分、時間のどれか）間隔で指定されたメー ルを送信します。単位を省略した場合は秒として扱われます。

例:
.IP
.B
\(bu
\-\-interval=5    # 5秒間隔で送信
.IP
.B
\(bu
\-\-interval=0.5s # 0.5秒間隔で送信
.IP
.B
\(bu
\-\-interval=10m  # 10分間隔で送信
.IP
.B
\(bu
\-\-interval=0.5h # 30分間隔で送信

既定値はありません。
.TP
.fi
.B
\-\-flood, \-\-flood[=PERIOD]
PERIOD（単位は秒、分、時間のどれか）の間、ずっと指定され たメールを送信します。PERIODを省略した場合はC\-cで終了する までずっと指定したメールを送信します。単位を省略した場合 は秒として扱われます。

既定値はありません。
.TP
.fi
.B
\-\-shuffle, \-\-no\-shuffle
送信予定のメールを無作為に並び替えてから送信します。

既定値はfalseです。（並び替えません。）
.TP
.fi
.B
\-\-report\-failure\-responses, \-\-no\-report\-failure\-responses
SMTPサーバが返した失敗時のメッセージを一番最後に表示しま す。

既定値はfalseです。（表示しません。）
.TP
.fi
.B
\-\-report\-periodically, \-\-report\-periodically=INTERVAL
INTERVAL（単位は秒、分、時間のどれか）間隔で統計情報を表 示します。INTERVALを省略した場合は1s（1秒）を指定したと扱 われます。単位を省略した場合は秒として扱われます。

既定値はありません。（定期的に統計情報を表示しません。）
.TP
.fi
.B
\-\-reading\-timeout=SECONDS
SMTPサーバからのレスポンスを待つ時間を指定します。
.I SECONDS
秒経ってもレスポンスが返ってこない場合はエラー になります。

既定値は60秒です。
.SH 終了ステータス
.PP
常に0。
.SH 例
.PP
以下の例では、milter\-performance\-checkはlocalhostの25番ポート で動いているSMTPサーバに接続し、100通のメールを送ります。それ ぞれのメールの差出人はfrom@example.comで、宛先は webmaster@localhostとinfo@localhostです。
.nf
\&    % milter\-performance\-check \-\-recipient=webmaster@localhost \-\-recipient=info@localhost
.fi
.PP
以下の例では、milter\-performance\-checkは192.168.1.29の25番ポー トで動いているSMTPサーバに接続し、/tmp/test\-mails/以下にある ファイルをメールとして送信します。ファイルはRFC 2822のメール フォーマットでなければいけません。各メールは3秒毎（60 * 10 / 100）にuser@localhost宛に送られます。\-\-n\-mails=1オプションが 指定されているので、それぞれのメールは1通のみ送られます。
.nf
\&    % milter\-performance\-check \-\-n\-mails=1 \-\-smtp\-server=192.168.1.102 \-\-force\-recipient=user@localhost \-\-period=5m /tmp/test\-mails/
.fi
.SH 関連項目
.PP
.BR milter\-report\-statistics
(1)

