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

FreeBSD Manual Pages

  
 
  

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

NAME
       postal -	program	to test	SMTP mail server throughput.

SYNOPSIS
       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

DESCRIPTION
       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 user@example.com).

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

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.

RETURN CODES
       0      No Error

       1      Bad Parameters

       2      System Error, lack of memory or some other resource

AUTHOR
       This program, it's manual page, and the Debian package were written  by
       Russell Coker <russell@coker.com.au>.

AVAILABILITY
       The source is available from http://doc.coker.com.au/projects/postal/ .

       See  http://etbe.coker.com.au/category/benchmark	 for  further informa-
       tion.

SEE ALSO
       bhm(8),postal-list(8),rabid(8)

russell@coker.com.au		     0.70			     postal(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=postal&sektion=8&manpath=FreeBSD+Ports+15.0>

home | help