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.
-Adelay
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.
-bsoft-bounce-reply
Use soft-bounce-reply for soft reject responses. The default reply is "450 4.3.0 Error: command
failed".
-Bhard-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.
-ddump-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.
-Ddump-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.
-fcommand,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.
-hhostname
Use hostname in the SMTP greeting, in the HELO response, and in the EHLO response. The default
hostname is "smtp-sink".
-Hdelay
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.
-mcount (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.
-Mcount
Terminate after receiving count messages.
-ncount
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.
-qcommand,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.
-Qcommand,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.
-rcommand,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.
-Rroot-directory
Change the process root directory to the specified location. This option requires super-user
privileges. See also the -u option.
-scommand,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.
-Sstart-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).
-ttimeout (default: 100)
Limit the time for receiving a command or sending a response. The time limit is specified in
seconds.
-Twindowsize
Override the default TCP window size. To work around broken TCP window scaling implementations,
specify a value > 0 and < 65536.
-uusername
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.
-wdelay
Wait delay seconds before responding to a DATA command.
-Wcommand: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 of the queue of pending connections, as defined by the listen(2) system call.