Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
postal(8)			    Postal			     postal(8)

       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-percent-
       age] [-L] [-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 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  ad-
       dresses 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	 spec-
       ify  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 spec-
       ify 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 mes-
       sage  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  discon-
       nect 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 de-
       fault 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  connec-
       tion as well with an additional ':' appended followed by	the connection

       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 informa-

       bhm(8),postal-list(8),rabid(8)		     0.70			     postal(8)


Want to link to this manual page? Use this URL:

home | help