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 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) pro-
gram.
Note: this is an unsupported test program. No attempt is
made to maintain compatibility between successive ver-
sions.
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.
-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
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".
-L Enable LMTP instead of SMTP.
-m count (default: 256)
An upper bound on the maximal number of simultane-
ous 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.
-n count
Terminate after count sessions. This is for testing
purposes.
-p Do not announce support for ESMTP command pipelin-
ing.
-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.
-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-
leges. 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 mes-
sage 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 open-
ing 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 com-
mand.
[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 connec-
tions, 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:
o The optional string specified with the -S option.
o The smtp-sink generated headers as documented
below.
o The message header and body as received from the
SMTP client.
o An empty line.
The format of the smtp-sink generated headers is as fol-
lows:
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 pro-
cessing 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)