1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
.TH "postal" "8" "0.70" "russell@coker.com.au" "Postal"
.SH "NAME"
postal \- program to test SMTP mail server throughput.
.SH "SYNOPSIS"
.B postal
.I [\-m maximum\-message\-size] [\-M minimum\-message\-size] [\-t threads]
.I [\-c messages\-per\-connection] [\-r messages\-per\-minute] [\-s ssl\-percentage]
.I [\-L] [\-l local\-address] [\-a] [\-b [no]netscape] [\-[z|Z] debug\-file]
.I [\-f sender\-file] smtp\-server user\-list\-filename
.SH "DESCRIPTION"
This manual page documents briefly the
.BR postal
program.
.P
It is designed to test the performance of SMTP email servers by sending random
messages to the specified server as fast as possible.
.P
The
.B smtp\-server
parameter specifies the IP address or name of the mail server that the mail
is to be sent to. Mail sent by
.B Postal
will not use MX records, this is to allow testing outbound relays etc. If you
want to specify a port other than port 25 then enclose the host address in
square brackets and have the port address immediately following. If you want
a DNS lookup for every connection (for testing round\-robin DNS) then
immediately precede the host address with a '+' character. To specify multiple
servers for round\-robin use then separate the addresses with commas. Note
that
.B localhost
is used for connecting to the same machine.
.P
The
.B user\-list\-filename
is the name of a file which contains a list of user's email addresses. This
can be just user\-names or fully qualified email addresses. Whatever you
specify will be sent exactly in the SMTP protocol so make sure you do whatever
is appropriate. If unsure then use fully qualified addresses (IE
user@example.com).
.P
The
.B sender\-file
contains a list of users that will be in the From: field and envelope sender
of the messages. If it is not specified then the user\-list\-filename will
be used for the sender list.
.P
The
.B maximum\-message\-size
indicates the size in Kilobytes that will be the maximum size of the
message body. The size of each message body will be a random number between 0
and the maximum size. Specify "0" if you want just headers to test the
connection rate. The default value is 10.
.P
The
.B threads
parameter is the number of threads that should be created to attempt
separate connections. A well configured mail server won't accept an unlimited
number of connections so make sure you don't specify a number larger than the
number your mail server is configured to handle. Also for sensible results
make sure that you don't use enough to make your server thrash as the results
won't be representative of real\-world use. The default value is 1, this
default is not suitable for real tests, it's just for testing your
configuration. If you specify multiple server addresses for round\-robin use
then this number of threads will be created per server, IE 4 servers and
.B \-p5
will give 20 threads total.
.P
The
.B messages\-per\-connection
parameter is for sending more than one message per SMTP connection. The
default value is "1". A value of \-1 means to send an indefinite number of
messages on one connection (~4 billion). If a value > 1 is specified then
the number sent on each connection is a random number between 1 and the number
specified. For simulating a mail server connected directly to the net use a
value of 2 or 3. For simulating a mail server connected to a front\-end
relay use a large number. For testing for bugs in your mail server use the
value 0 and leave it running for a week. ;) A value of 0 means to disconnect
without sending any messages. Good for testing a LocalDirector.
.P
The
.B max\-messages\-per\-minute
parameter is for limiting the throughput of the program. This is designed to
be used when you want to test the performance of other programs when the
system is under load. The default is effectively 24000 messages per minute.
.P
The
.B local\-address
parameter specifies which local IP address(es) are used to make the outbound
connections. Specified in the same way as the remote address. This is good
for testing LocalDirectors or other devices that perform differently depending
on which source IP address was used.
.P
The \-L
command specifies that LMTP is to be used instead of SMTP.
.P
The
.B \-a
command turns on all logging. All message data received will be logged. This
will make it slow and it may not be able to saturate a fast Ethernet link...
.P
The
.B \-b
switch allows you to specify breakage strings. Currently the only option is
for Netscape mail server which strips spaces from the start of subject lines.
.B \-b netscape
means to avoid leading spaces on subject fields to not break Netscape.
.B \-b nonetscape
means to always put extra space to test for the bug in Netscape and similar
products. Some people say that the RFCs are open to interpretation on this
issue, I am interested to see whether anyone else interprets it the way that
Netscape does.
.P
The
.B \-s
switch specifies the percentage of connections which are to use
.B TLS
AKA
.B SSL.
Use 0 for no SSL, or 100 for always SSL, or any number in between. Default is
0.
.P
The
.B \-z
switch allows you to specify a debugging file base. From this base one file
is created for each thread (with a ':' and the thread number appended), each
file is used to log all IO performed by that thread for debugging purposes.
.P
The
.B \-Z
switch is the same but creates a separate file for each connection as well
with an additional ':' appended followed by the connection number.
.SH "NOTES"
When testing mail servers please use domains defined in
http://www.rfc-editor.org/rfc/rfc2606.txt - example.com, example.net, and example.org
are all good options. Please don't use anything related to a valid name, since
that will cause pain for you and others on the net.
.SH "RETURN CODES"
.TP
.B 0
No Error
.TP
.B 1
Bad Parameters
.TP
.B 2
System Error, lack of memory or some other resource
.SH "AUTHOR"
This program, it's manual page, and the Debian package were written by
Russell Coker <russell@coker.com.au>.
.SH "AVAILABILITY"
The source is available from http://doc.coker.com.au/projects/postal/ .
.P
See http://etbe.coker.com.au/category/benchmark for further information.
.SH "SEE ALSO"
.BR bhm (8), postal\-list (8), rabid (8)
|