milter-performance-check MILTER-MANAGER Library
milter-performance-check MTA performance check program

## NAME

milter-performance-check - MTA performance check program

## SYNOPSIS

`milter-performance-check` [ option ... ]

## DESCRIPTION

milter-performance-check is a SMTP client that measures MTA performance. milter-test-server measures milter's performance and miter-performance-check measures MTA + milter's performance.

smtp-source bundled with Postfix is a similar tool. smtp-source has more features.

milter-performance-check is useful because it measures elapsed time of only SMTP sessions. smtp-source doesn't provide the feature. You need to also use 'time' command and measure smtp-source command runtime not elapsed time of SMTP sessions.

Normally, there isn't big difference between elapsed time of SMTP sessions and tool runtime.

If you satisfy milter-performance-check's features, it's better that you use milter-performance-check. If you don't, smtp-source is more better tool for you.

## Options

--help

  Shows available options and exits.

--smtp-server=SERVER

  Uses SEVER as target SMTP server.

  The default is localhost.

--smtp-port=PORT

  Uses PORT as SMTP port.

  The default is 25.

--connect-host=HOST

  Specifies connected SMTP client host.

  This uses NAME of Postfix's XCLIENT SMTP extension . smtpd_authorized_xclient_hosts should be configured appropriately.

--connect-address=ADDRESS

  Specifies connected SMTP client address.

  This uses ADDR of Postfix's XCLIENT SMTP extension . smtpd_authorized_xclient_hosts should be configured appropriately.

--helo-fqdn=FQDN

  Uses FQDN as HELO SMTP command.

  The default localhost.localdomain.

--starttls=HOW

  Since 1.6.9.

  Specifies whether STARTTLS is used or not. Here are available `HOW` values:

  `auto`

    It uses STARTTLS when MTA supports STARTTLS. (default)

  `always`

    It always uses STARTTLS.

  `disable`

    It never use STARTTLS.

  The default is `auto` .

--auth-user=USER

  Since 1.6.9.

  Uses `USER` as SMTP Authentication user.

  The default is none.

--auth-password=PASSWORD

  Since 1.6.9.

  Uses `PASSWORD` as SMTP Authentication password.

  The default is none.

--auth-mechanism=MECHANISM

  Since 1.6.9.

  Uses `MECHANISM` as SMTP Authentication mechanism. Here are available `MECHANISM` values:

  `auto`

    It uses a detected available mechanism by MTA. (default)

  `plain`

    It always uses PLAIN.

  `login`

    It always uses LOGIN.

  `cram_md5` or `cram-md5`

    It always uses CRAM-MD5.

  The default is `auto` .

--auth-map=FILE

  Since 1.6.9.

  Loads SMTP Authentication configurations for MTA address and port number pairs from `FILE` .

  Here is `FILE` format that is also used by Postfix's smtp_sasl_password_maps :

      SERVER1:PORT USER1:PASSWORD1
      SERVER2:PORT USER2:PASSWORD2
      ...

  Here is an example configuration that "send-user" user and "secret" password account is used for "smtp.example.com" address and "submission port" (587 port) MTA:

      smtp.example.com:587 send-user:secret

  The default is none.

--from=FROM

  Uses FROM as MAIL SMTP command.

  The default from@example.com.

--force-from=FROM

  Uses FROM as MAIL SMTP command even if mail file includes "From:" header.

  The default is none.

--recipient=RECIPIENT

  Uses RECIPIENT as RCPT SMTP command. If you want to use multiple recipients, use --recipient n-times.

  The default is [to@example.com].

--force-recipient=RECIPIENT

  Uses RECIPIENT as RCPT SMTP command even if mail file includes 'To:' header. If you want to use multiple recipients, use --recipient n-times.

  The default is none.

--n-mails=N

  Sends N mails. Some mails are sent concurrently. Maximum concurrency can be specified by --n-concurrent-connections .

  The default is 100.

--n-additional-lines=N

  Adds N lines into mail body.

  The default is none. (Doesn't add.)

--n-concurrent-connections=N

  Sends mails with N connections concurrently.

  The default is 10.

--period=PERIOD

  Sends mails in PERIOD seconds/minutes/hours. Each mail is sent averagely. PERIOD is treated as seconds when its unit is omitted.

  Example (100 mails are sent):

  - --period=5 # sends mails at intervals of 0.05 seconds (5 / 100)

  - --period=50s # sends mails at intervals of 0.5 seconds (50 / 100)

  - --period=10m # sends mails at intervals of 6 seconds (60 * 10 / 100)

  - --period=0.5h # sends mails at intervals of 18 seconds (60 * 60 * 0.5 / 100)

  The default is none.

--interval=INTERVAL

  Sends mails at intervals of INTERVAL seconds/minutes/hours. INTERVAL is treated as seconds when its unit is omitted.

  Example:

  - --interval=5 # sends mails at intervals of 5 seconds

  - --interval=0.5s # sends mails at intervals of 0.5 seconds

  - --interval=10m # sends mails at intervals of 10 minutes

  - --interval=0.5h # sends mails at intervals of 0.5 hours

  The default is none.

--flood[=PERIOD]

  Sends flood of mails in PERIOD seconds/minutes/hours. If PERIOD is omitted, floods mails endlessly. PERIOD is treated as seconds when its unit is omitted.

  The default is none.

--shuffle, --no-shuffle

  Shuffles target mails before sending.

  The default is false. (don't shuffle.)

--report-failure-responses, --no-report-failure-responses

  Reports failure messages from SMTP server at the last.

  The default is false. (don't report.)

--report-periodically[=INTERVAL]

  Reports statistics at intervals of INTERVAL seconds/minutes/hours. If INTERVAL is omitted, 1s (1 second) is used. INTERVAL is treated as seconds when its unit is omitted.

  The default is one. (Don't report statistics periodically.)

--reading-timeout=SECONDS

  Specifies timeout on reading a response from a SMTP server. An error is occurred when the SMTP server doesn't respond to a request in `SECONDS` seconds.

  The default is 60 seconds.

## EXIT STATUS

Always 0.

## EXAMPLE

In the following example, milter-performance-check connects a SMTP server running on localhost at 25 port and sends 100 mails. Each mail's sender is from@example.com and recipients are webmaster@localhost and info@localhost.

    % milter-performance-check --recipient=webmaster@localhost --recipient=info@localhost

In the following example, milter-performance-check connects a SMTP server running on 192.168.1.102 at 25 port and sends files under /tmp/test-mails/ directory. The files should be RFC 2822 format. The mails are sent to user@localhost at intervals of 3 seconds (60 * 10 / 100). Each mail is sent only 1 time because of --n-mails=1 option.

    % milter-performance-check --n-mails=1 --smtp-server=192.168.1.102 --force-recipient=user@localhost --period=5m /tmp/test-mails/

## SEE ALSO

milter-performance-check.rd.ja (1)