Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / man / man1 / smtp-sink.1
blobdaa4bc985e0cba84370369bc60b890bcb872c84d
1 .\"     $NetBSD$
2 .\"
3 .TH SMTP-SINK 1 
4 .ad
5 .fi
6 .SH NAME
7 smtp-sink
8 \-
9 multi-threaded SMTP/LMTP test server
10 .SH "SYNOPSIS"
11 .na
12 .nf
13 .fi
14 \fBsmtp-sink\fR [\fIoptions\fR] [\fBinet:\fR][\fIhost\fR]:\fIport\fR
15 \fIbacklog\fR
17 \fBsmtp-sink\fR [\fIoptions\fR] \fBunix:\fR\fIpathname\fR \fIbacklog\fR
18 .SH DESCRIPTION
19 .ad
20 .fi
21 \fBsmtp-sink\fR listens on the named host (or address) and port.
22 It takes SMTP messages from the network and throws them away.
23 The purpose is to measure client performance, not protocol
24 compliance.
26 \fBsmtp-sink\fR may also be configured to capture each mail
27 delivery transaction to file. Since disk latencies are large
28 compared to network delays, this mode of operation can
29 reduce the maximal performance by several orders of magnitude.
31 Connections can be accepted on IPv4 or IPv6 endpoints, or on
32 UNIX-domain sockets.
33 IPv4 and IPv6 are the default.
34 This program is the complement of the \fBsmtp-source\fR(1) program.
36 Note: this is an unsupported test program. No attempt is made
37 to maintain compatibility between successive versions.
39 Arguments:
40 .IP \fB-4\fR
41 Support IPv4 only. This option has no effect when
42 Postfix is built without IPv6 support.
43 .IP \fB-6\fR
44 Support IPv6 only. This option is not available when
45 Postfix is built without IPv6 support.
46 .IP \fB-8\fR
47 Do not announce 8BITMIME support.
48 .IP \fB-a\fR
49 Do not announce SASL authentication support.
50 .IP "\fB-A \fIdelay\fR"
51 Wait \fIdelay\fR seconds after responding to DATA, then
52 abort prematurely with a 550 reply status.  Do not read
53 further input from the client; this is an attempt to block
54 the client before it sends ".".  Specify a zero delay value
55 to abort immediately.
56 .IP \fB-c\fR
57 Display running counters that are updated whenever an SMTP
58 session ends, a QUIT command is executed, or when "." is
59 received.
60 .IP \fB-C\fR
61 Disable XCLIENT support.
62 .IP "\fB-d \fIdump-template\fR"
63 Dump each mail transaction to a single-message file whose
64 name is created by expanding the \fIdump-template\fR via
65 strftime(3) and appending a pseudo-random hexadecimal number
66 (example: "%Y%m%d%H/%M." expands into "2006081203/05.809a62e3").
67 If the template contains "/" characters, missing directories
68 are created automatically.  The message dump format is
69 described below.
70 .sp
71 Note: this option keeps one capture file open for every
72 mail transaction in progress.
73 .IP "\fB-D \fIdump-template\fR"
74 Append mail transactions to a multi-message dump file whose
75 name is created by expanding the \fIdump-template\fR via
76 strftime(3).
77 If the template contains "/" characters, missing directories
78 are created automatically.  The message dump format is
79 described below.
80 .sp
81 Note: this option keeps one capture file open for every
82 mail transaction in progress.
83 .IP \fB-e\fR
84 Do not announce ESMTP support.
85 .IP \fB-E\fR
86 Do not announce ENHANCEDSTATUSCODES support.
87 .IP "\fB-f \fIcommand,command,...\fR"
88 Reject the specified commands with a hard (5xx) error code.
89 This option implies \fB-p\fR.
90 .sp
91 Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT, VRFY,
92 DATA, ., RSET, NOOP, and QUIT. Separate command names by
93 white space or commas, and use quotes to protect white space
94 from the shell. Command names are case-insensitive.
95 .IP \fB-F\fR
96 Disable XFORWARD support.
97 .IP "\fB-h\fI hostname\fR"
98 Use \fIhostname\fR in the SMTP greeting, in the HELO response,
99 and in the EHLO response. The default hostname is "smtp-sink".
100 .IP \fB-L\fR
101 Enable LMTP instead of SMTP.
102 .IP "\fB-m \fIcount\fR (default: 256)"
103 An upper bound on the maximal number of simultaneous
104 connections that \fBsmtp-sink\fR will handle. This prevents
105 the process from running out of file descriptors. Excess
106 connections will stay queued in the TCP/IP stack.
107 .IP "\fB-M \fIcount\fR"
108 Terminate after receiving \fIcount\fR messages.
109 .IP "\fB-n \fIcount\fR"
110 Terminate after \fIcount\fR sessions.
111 .IP \fB-p\fR
112 Do not announce support for ESMTP command pipelining.
113 .IP \fB-P\fR
114 Change the server greeting so that it appears to come through
115 a CISCO PIX system. Implies \fB-e\fR.
116 .IP "\fB-q \fIcommand,command,...\fR"
117 Disconnect (without replying) after receiving one of the
118 specified commands.
120 Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT, VRFY,
121 DATA, ., RSET, NOOP, and QUIT. Separate command names by
122 white space or commas, and use quotes to protect white space
123 from the shell. Command names are case-insensitive.
124 .IP "\fB-Q \fIcommand,command,...\fR"
125 Send a 421 reply and disconnect after receiving one
126 of the specified commands.
128 Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT, VRFY,
129 DATA, ., RSET, NOOP, and QUIT. Separate command names by
130 white space or commas, and use quotes to protect white space
131 from the shell. Command names are case-insensitive.
132 .IP "\fB-r \fIcommand,command,...\fR"
133 Reject the specified commands with a soft (4xx) error code.
134 This option implies \fB-p\fR.
136 Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT, VRFY,
137 DATA, ., RSET, NOOP, and QUIT. Separate command names by
138 white space or commas, and use quotes to protect white space
139 from the shell. Command names are case-insensitive.
140 .IP "\fB-R \fIroot-directory\fR"
141 Change the process root directory to the specified location.
142 This option requires super-user privileges. See also the
143 \fB-u\fR option.
144 .IP "\fB-s \fIcommand,command,...\fR"
145 Log the named commands to syslogd.
147 Examples of commands are CONNECT, HELO, EHLO, LHLO, MAIL, RCPT, VRFY,
148 DATA, ., RSET, NOOP, and QUIT. Separate command names by
149 white space or commas, and use quotes to protect white space
150 from the shell. Command names are case-insensitive.
151 .IP "\fB-S start-string\fR"
152 An optional string that is prepended to each message that is
153 written to a dump file (see the dump file format description
154 below). The following C escape sequences are supported: \ea
155 (bell), \eb (backslace), \ef (formfeed), \en (newline), \er
156 (carriage return), \et (horizontal tab), \ev (vertical tab),
157 \e\fIddd\fR (up to three octal digits) and \e\e (the backslash
158 character).
159 .IP "\fB-t \fItimeout\fR (default: 100)"
160 Limit the time for receiving a command or sending a response.
161 The time limit is specified in seconds.
162 .IP "\fB-T \fIwindowsize\fR"
163 Override the default TCP window size. To work around
164 broken TCP window scaling implementations, specify a
165 value > 0 and < 65536.
166 .IP "\fB-u \fIusername\fR"
167 Switch to the specified user privileges after opening the
168 network socket and optionally changing the process root
169 directory. This option is required when the process runs
170 with super-user privileges. See also the \fB-R\fR option.
171 .IP \fB-v\fR
172 Show the SMTP conversations.
173 .IP "\fB-w \fIdelay\fR"
174 Wait \fIdelay\fR seconds before responding to a DATA command.
175 .IP "\fB-W \fIcommand:delay[:odds]\fR"
176 Wait \fIdelay\fR seconds before responding to \fIcommand\fR.
177 If \fIodds\fR is also specified (a number between 1-99
178 inclusive), wait for a random multiple of \fIdelay\fR. The
179 random multiplier is equal to the number of times the program
180 needs to roll a dice with a range of 0..99 inclusive, before
181 the dice produces a result greater than or equal to \fIodds\fR.
182 .IP [\fBinet:\fR][\fIhost\fR]:\fIport\fR
183 Listen on network interface \fIhost\fR (default: any interface)
184 TCP port \fIport\fR. Both \fIhost\fR and \fIport\fR may be
185 specified in numeric or symbolic form.
186 .IP \fBunix:\fR\fIpathname\fR
187 Listen on the UNIX-domain socket at \fIpathname\fR.
188 .IP \fIbacklog\fR
189 The maximum length the queue of pending connections,
190 as defined by the \fBlisten\fR(2) system call.
191 .SH "DUMP FILE FORMAT"
196 Each dumped message contains a sequence of text lines,
197 terminated with the newline character. The sequence of
198 information is as follows:
199 .IP \(bu
200 The optional string specified with the \fB-S\fR option.
201 .IP \(bu
202 The \fBsmtp-sink\fR generated headers as documented below.
203 .IP \(bu
204 The message header and body as received from the SMTP client.
205 .IP \(bu
206 An empty line.
208 The format of the \fBsmtp-sink\fR generated headers is as
209 follows:
210 .IP "\fBX-Client-Addr: \fItext\fR"
211 The client IP address without enclosing []. An IPv6 address
212 is prefixed with "ipv6:". This record is always present.
213 .IP "\fBX-Client-Proto: \fItext\fR"
214 The client protocol: SMTP, ESMTP or LMTP. This record is
215 always present.
216 .IP "\fBX-Helo-Args: \fItext\fR"
217 The arguments of the last HELO or EHLO command before this
218 mail delivery transaction. This record is present only if
219 the client sent a recognizable HELO or EHLO command before
220 the DATA command.
221 .IP "\fBX-Mail-Args: \fItext\fR"
222 The arguments of the MAIL command that started this mail
223 delivery transaction. This record is present exactly once.
224 .IP "\fBX-Rcpt-Args: \fItext\fR"
225 The arguments of an RCPT command within this mail delivery
226 transaction. There is one record for each RCPT command, and
227 they are in the order as sent by the client.
228 .IP "\fBReceived: \fItext\fR"
229 A message header for compatibility with mail processing
230 software. This three-line header marks the end of the headers
231 provided by \fBsmtp-sink\fR, and is formatted as follows:
233 .IP "\fBfrom \fIhelo\fB ([\fIaddr\fB])\fR"
234 The HELO or EHLO command argument and client IP address.
235 If the client did not send HELO or EHLO, the client IP
236 address is used instead.
237 .IP "\fBby \fIhost\fB (smtp-sink) with \fIproto\fB id \fIrandom\fB;\fR"
238 The hostname specified with the \fB-h\fR option, the client
239 protocol (see \fBX-Client-Proto\fR above), and the pseudo-random
240 portion of the per-message capture file name.
241 .IP \fItime-stamp\fR
242 A time stamp as defined in RFC 2822.
244 .SH "SEE ALSO"
247 smtp-source(1), SMTP/LMTP message generator
248 .SH "LICENSE"
253 The Secure Mailer license must be distributed with this software.
254 .SH "AUTHOR(S)"
257 Wietse Venema
258 IBM T.J. Watson Research
259 P.O. Box 704
260 Yorktown Heights, NY 10598, USA