Provided by: postal_0.70build1_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  local-address]
       [-a] [-b [no]netscape] [-[z|Z] debug-file] [-f sender-file] smtp-server user-list-filename


       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 immidiately
       following.  If you want a DNS lookup for every connection (for  testing  round-robin  DNS)
       then  immediately  preceed  the  host  address  with a '+' character.  To specify multiple
       servers for round-robin use then seperate 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 seperate
       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  indefinate  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 -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
       attitional ':' 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, 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.