Provided by: postal_0.76+nmu1_amd64 bug


       postal - program to test SMTP mail server throughput.


       postal    [-m   maximum-message-size]   [-M   minimum-message-size]   [-t   threads]   [-c
       messages-per-connection]   [-r   messages-per-minute]   [-s   ssl-percentage]   [-L]   [-l
       local-address]  [-a]  [-b  [no]netscape]  [-[z|Z] debug-file] [-f sender-file] smtp-server


       This manual page documents briefly the postal program.

       It is designed to test the performance of SMTP email servers by sending random messages to
       the specified server as fast as possible.

       The  smtp-server  parameter  specifies  the IP address or name of the mail server that the
       mail is to be sent to.  Mail sent by 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 localhost
       is used for connecting to the same machine.

       The 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

       The  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.

       The  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.

       The 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 -p5 will give 20
       threads total.

       The 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.

       The 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.

       The  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.

       The -L command specifies that LMTP is to be used instead of SMTP.

       The -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...

       The  -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  netscape
       means  to  avoid  leading  spaces  on subject fields to not break Netscape.  -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.

       The -s switch specifies the percentage of connections which are to use TLS AKA SSL.  Use 0
       for no SSL, or 100 for always SSL, or any number in between.  Default is 0.

       The  -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.

       The  -Z switch is the same but creates a separate file for each connection as well with an
       additional ':' appended followed by the connection number.


       When   testing   mail   servers   please   use   domains   defined   in    http://www.rfc- -,, and
        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.


       0      No Error

       1      Bad Parameters

       2      System Error, lack of memory or some other resource


       This program, it's manual page, and the Debian  package  were  written  by  Russell  Coker


       The source is available from .

       See for further information.