Provided by: postfix_3.4.13-0ubuntu1.4_amd64 bug

NAME

       smtp-sink - parallelized 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 transaction 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 maintain 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 prematurely 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.

       -b soft-bounce-reply
              Use soft-bounce-reply for soft reject responses.  The default reply is "450 4.3.0  Error:  command
              failed".

       -B hard-bounce-reply
              Use  hard-bounce-reply  for hard reject responses.  The default reply is "500 5.3.0 Error: command
              failed".

       -c     Display running counters that are updated whenever  an  SMTP  session  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 created 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".

       -H delay
              Delay  the  first read operation after receiving DATA (time in seconds). Combine with a large test
              message and a small TCP window size (see the -T option) to test the  Postfix  client  write_wait()
              implementation.

       -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 running out of file descriptors. Excess connections will stay queued  in
              the TCP/IP stack.

       -M count
              Terminate after receiving count messages.

       -n count
              Terminate after count sessions.

       -N     Do not announce support for DSN.

       -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 specified 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 specified 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
              (backspace), \f (formfeed), \n (newline), \r (carriage 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.

       -T windowsize
              Override the default TCP window size. To work around broken TCP  window  scaling  implementations,
              specify a value > 0 and < 65536.

       -u username
              Switch  to  the specified user privileges after opening the network 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 command.

       X-Mail-Args: text
              The arguments of the MAIL command that started this mail  delivery  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 software. This three-line header marks the
              end of the headers provided 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-random 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

       Wietse Venema
       Google, Inc.
       111 8th Avenue
       New York, NY 10011, USA

                                                                                                    SMTP-SINK(1)