Back to main site | Back to man page index

SMTP-SINK(1)                                   General Commands Manual                                   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 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 ".".  Spec‐
              ify 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-tem‐
              plate 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.


       -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 pre‐
              vents 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.

       -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 privi‐
              \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.

              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



                                                                                                         SMTP-SINK(1)