smtp-sink

SMTP-SINK(1)							  SMTP-SINK(1)



NAME
       smtp-sink - multi-threaded SMTP/LMTP test server

SYNOPSIS
       smtp-sink [options] [inet:][host]:port backlog

       smtp-sink [options] unix:pathname backlog

DESCRIPTION
       smtp-sink  listens  on  the named host (or address) and port.  It takes
       SMTP messages from the network and throws them away.  The purpose is to
       measure client performance, not protocol compliance.

       smtp-sink may also be configured to capture each mail delivery transac-
       tion to file. Since  disk  latencies  are  large	 compared  to  network
       delays,	this  mode  of operation can reduce the maximal performance by
       several orders of magnitude.

       Connections can be accepted on IPv4 or  IPv6  endpoints,	 or  on	 UNIX-
       domain  sockets.	  IPv4	and IPv6 are the default.  This program is the
       complement of the smtp-source(1) program.

       Note: this is an unsupported test program. No attempt is made to	 main-
       tain compatibility between successive versions.

       Arguments:

       -4     Support  IPv4  only.  This  option has no effect when Postfix is
	      built without IPv6 support.

       -6     Support IPv6 only. This option is not available when Postfix  is
	      built without IPv6 support.

       -8     Do not announce 8BITMIME support.

       -a     Do not announce SASL authentication support.

       -A delay
	      Wait  delay  seconds after responding to DATA, then abort prema-
	      turely with a 550 reply status.  Do not read further input  from
	      the  client;  this  is  an attempt to block the client before it
	      sends ".".  Specify a zero delay value to abort immediately.

       -c     Display running counters that are updated whenever an SMTP  ses-
	      sion  ends, a QUIT command is executed, or when "." is received.

       -C     Disable XCLIENT support.

       -d dump-template
	      Dump each mail transaction to a single-message file  whose  name
	      is  created  by  expanding the dump-template via strftime(3) and
	      appending	  a   pseudo-random   hexadecimal   number   (example:
	      "%Y%m%d%H/%M."  expands  into "2006081203/05.809a62e3").	If the
	      template contains "/" characters, missing directories  are  cre-
	      ated automatically.  The message dump format is described below.

	      Note: this option keeps one capture file	open  for  every  mail
	      transaction in progress.

       -D dump-template
	      Append mail transactions to a multi-message dump file whose name
	      is created by expanding the dump-template via  strftime(3).   If
	      the  template  contains  "/" characters, missing directories are
	      created automatically.  The message  dump	 format	 is  described
	      below.

	      Note:  this  option  keeps  one capture file open for every mail
	      transaction in progress.

       -e     Do not announce ESMTP support.

       -E     Do not announce ENHANCEDSTATUSCODES support.

       -f command,command,...
	      Reject the specified commands with  a  hard  (5xx)  error	 code.
	      This option implies -p.

	      Examples	of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT,
	      VRFY, DATA, ., RSET, NOOP, and QUIT. Separate command  names  by
	      white  space  or	commas,	 and use quotes to protect white space
	      from the shell. Command names are case-insensitive.

       -F     Disable XFORWARD support.

       -h hostname
	      Use hostname in the SMTP greeting, in the HELO response, and  in
	      the EHLO response. The default hostname is "smtp-sink".

       -L     Enable LMTP instead of SMTP.

       -m count (default: 256)
	      An upper bound on the maximal number of simultaneous connections
	      that smtp-sink will handle. This prevents the process from  run-
	      ning  out	 of  file  descriptors.	 Excess	 connections will stay
	      queued in the TCP/IP stack.

       -n count
	      Terminate after count sessions. This is for testing purposes.

       -p     Do not announce support for ESMTP command pipelining.

       -P     Change the server greeting so that it appears to come through  a
	      CISCO PIX system. Implies -e.

       -q command,command,...
	      Disconnect  (without replying) after receiving one of the speci-
	      fied commands.

	      Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL,	 RCPT,
	      VRFY,  DATA,  ., RSET, NOOP, and QUIT. Separate command names by
	      white space or commas, and use quotes  to	 protect  white	 space
	      from the shell. Command names are case-insensitive.

       -Q command,command,...
	      Send a 421 reply and disconnect after receiving one of the spec-
	      ified commands.

	      Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL,	 RCPT,
	      VRFY,  DATA,  ., RSET, NOOP, and QUIT. Separate command names by
	      white space or commas, and use quotes  to	 protect  white	 space
	      from the shell. Command names are case-insensitive.

       -r command,command,...
	      Reject  the  specified  commands	with  a soft (4xx) error code.
	      This option implies -p.

	      Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL,	 RCPT,
	      VRFY,  DATA,  ., RSET, NOOP, and QUIT. Separate command names by
	      white space or commas, and use quotes  to	 protect  white	 space
	      from the shell. Command names are case-insensitive.

       -R root-directory
	      Change  the  process  root  directory to the specified location.
	      This option requires super-user  privileges.  See	 also  the  -u
	      option.

       -s command,command,...
	      Log the named commands to syslogd.

	      Examples	of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT,
	      VRFY, DATA, ., RSET, NOOP, and QUIT. Separate command  names  by
	      white  space  or	commas,	 and use quotes to protect white space
	      from the shell. Command names are case-insensitive.

       -S start-string
	      An optional string that is prepended to  each  message  that  is
	      written  to  a  dump  file (see the dump file format description
	      below). The following  C	escape	sequences  are	supported:  \a
	      (bell),  \b  (backslace),	 \f (formfeed), \n (newline), \r (car-
	      riage return), \t (horizontal tab), \v (vertical tab), \ddd  (up
	      to three octal digits) and \\ (the backslash character).

       -t timeout (default: 100)
	      Limit  the  time	for receiving a command or sending a response.
	      The time limit is specified in seconds.

       -u username
	      Switch to the specified user privileges after opening  the  net-
	      work  socket and optionally changing the process root directory.
	      This option is required when the process	runs  with  super-user
	      privileges. See also the -R option.

       -v     Show the SMTP conversations.

       -w delay
	      Wait delay seconds before responding to a DATA command.

       -W command:delay[:odds]
	      Wait  delay  seconds  before  responding to command.  If odds is
	      also specified (a number between 1-99  inclusive),  wait	for  a
	      random  multiple of delay. The random multiplier is equal to the
	      number of times the program needs to roll a dice with a range of
	      0..99  inclusive, before the dice produces a result greater than
	      or equal to odds.

       [inet:][host]:port
	      Listen on network interface host (default:  any  interface)  TCP
	      port  port.  Both	 host  and port may be specified in numeric or
	      symbolic form.

       unix:pathname
	      Listen on the UNIX-domain socket at pathname.

       backlog
	      The maximum length the queue of pending connections, as  defined
	      by the listen(2) system call.

DUMP FILE FORMAT
       Each  dumped message contains a sequence of text lines, terminated with
       the newline character. The sequence of information is as follows:

       ·      The optional string specified with the -S option.

       ·      The smtp-sink generated headers as documented below.

       ·      The message header and body as received from the SMTP client.

       ·      An empty line.

       The format of the smtp-sink generated headers is as follows:

       X-Client-Addr: text
	      The client IP address without enclosing []. An IPv6  address  is
	      prefixed with "ipv6:". This record is always present.

       X-Client-Proto: text
	      The  client protocol: SMTP, ESMTP or LMTP. This record is always
	      present.

       X-Helo-Args: text
	      The arguments of the last HELO or EHLO command before this  mail
	      delivery	transaction. This record is present only if the client
	      sent a recognizable HELO or EHLO command before  the  DATA  com-
	      mand.

       X-Mail-Args: text
	      The  arguments of the MAIL command that started this mail deliv-
	      ery transaction. This record is present exactly once.

       X-Rcpt-Args: text
	      The arguments of an  RCPT	 command  within  this	mail  delivery
	      transaction. There is one record for each RCPT command, and they
	      are in the order as sent by the client.

       Received: text
	      A message header for compatibility with  mail  processing	 soft-
	      ware.  This  three-line header marks the end of the headers pro-
	      vided by smtp-sink, and is formatted as follows:

	      from helo ([addr])
		     The HELO or EHLO command argument and client IP  address.
		     If	 the  client  did not send HELO or EHLO, the client IP
		     address is used instead.

	      by host (smtp-sink) with proto id random;
		     The hostname specified with the  -h  option,  the	client
		     protocol  (see X-Client-Proto above), and the pseudo-ran-
		     dom portion of the per-message capture file name.

	      time-stamp
		     A time stamp as defined in RFC 2822.

SEE ALSO
       smtp-source(1), SMTP/LMTP message generator

LICENSE
       The Secure Mailer license must be distributed with this software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA



								  SMTP-SINK(1)

Personal Tools