descriptors. Excess connections will stay queued in
the TCP/IP stack.
+ <b>-M</b> <i>count</i>
+ Terminate after receiving <i>count</i> messages.
+
<b>-n</b> <i>count</i>
- Terminate after <i>count</i> sessions. This is for testing
- purposes.
+ Terminate after <i>count</i> sessions.
- <b>-p</b> Do not announce support for ESMTP command pipelin-
+ <b>-p</b> Do not announce support for ESMTP command pipelin-
ing.
- <b>-P</b> Change the server greeting so that it appears to
+ <b>-P</b> Change the server greeting so that it appears to
come through a CISCO PIX system. Implies <b>-e</b>.
<b>-q</b> <i>command,command,...</i>
- Disconnect (without replying) after receiving one
+ 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
+ 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.
<b>-Q</b> <i>command,command,...</i>
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
+ 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.
<b>-r</b> <i>command,command,...</i>
- Reject the specified commands with a soft (4xx)
+ Reject the specified commands with a soft (4xx)
error code. This option implies <b>-p</b>.
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
+ 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.
<b>-R</b> <i>root-directory</i>
- Change the process root directory to the specified
- location. This option requires super-user privi-
+ Change the process root directory to the specified
+ location. This option requires super-user privi-
leges. See also the <b>-u</b> option.
<b>-s</b> <i>command,command,...</i>
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
+ 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.
<b>-S start-string</b>
- 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
+ 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), \<i>ddd</i> (up to three octal digits) and \\ (the
+ (backslace), \f (formfeed), \n (newline), \r (car-
+ riage return), \t (horizontal tab), \v (vertical
+ tab), \<i>ddd</i> (up to three octal digits) and \\ (the
backslash character).
<b>-t</b> <i>timeout</i> (default: 100)
Limit the time for receiving a command or sending a
- response. The time limit is specified in seconds.
+ response. The time limit is specified in seconds.
<b>-u</b> <i>username</i>
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.
+ 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 <b>-R</b> option.
<b>-v</b> Show the SMTP conversations.
mand.
<b>-W</b> <i>command:delay[:odds]</i>
- Wait <i>delay</i> seconds before responding to <i>command</i>.
- If <i>odds</i> is also specified (a number between 1-99
- inclusive), wait for a random multiple of <i>delay</i>.
- The random multiplier is equal to the number of
+ Wait <i>delay</i> seconds before responding to <i>command</i>.
+ If <i>odds</i> is also specified (a number between 1-99
+ inclusive), wait for a random multiple of <i>delay</i>.
+ 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
+ of 0..99 inclusive, before the dice produces a
result greater than or equal to <i>odds</i>.
[<b>inet:</b>][<i>host</i>]:<i>port</i>
- Listen on network interface <i>host</i> (default: any
+ Listen on network interface <i>host</i> (default: any
interface) TCP port <i>port</i>. Both <i>host</i> and <i>port</i> may be
specified in numeric or symbolic form.
Listen on the UNIX-domain socket at <i>pathname</i>.
<i>backlog</i>
- The maximum length the queue of pending connec-
+ The maximum length the queue of pending connec-
tions, as defined by the <b>listen</b>(2) system call.
<b>DUMP FILE FORMAT</b>
- Each dumped message contains a sequence of text lines,
- terminated with the newline character. The sequence of
+ Each dumped message contains a sequence of text lines,
+ terminated with the newline character. The sequence of
information is as follows:
<b>o</b> The optional string specified with the <b>-S</b> option.
- <b>o</b> The <b>smtp-sink</b> generated headers as documented
+ <b>o</b> The <b>smtp-sink</b> generated headers as documented
below.
- <b>o</b> The message header and body as received from the
+ <b>o</b> The message header and body as received from the
SMTP client.
<b>o</b> An empty line.
- The format of the <b>smtp-sink</b> generated headers is as fol-
+ The format of the <b>smtp-sink</b> generated headers is as fol-
lows:
<b>X-Client-Addr:</b> <i>text</i>
The client IP address without enclosing []. An IPv6
- address is prefixed with "ipv6:". This record is
+ address is prefixed with "ipv6:". This record is
always present.
<b>X-Client-Proto:</b> <i>text</i>
- The client protocol: SMTP, ESMTP or LMTP. This
+ The client protocol: SMTP, ESMTP or LMTP. This
record is always present.
<b>X-Helo-Args:</b> <i>text</i>
- 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
+ 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.
<b>X-Mail-Args:</b> <i>text</i>
The arguments of the MAIL command that started this
- mail delivery transaction. This record is present
+ mail delivery transaction. This record is present
exactly once.
<b>X-Rcpt-Args:</b> <i>text</i>
- 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 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.
<b>Received:</b> <i>text</i>
- A message header for compatibility with mail pro-
- cessing software. This three-line header marks the
- end of the headers provided by <b>smtp-sink</b>, and is
+ A message header for compatibility with mail pro-
+ cessing software. This three-line header marks the
+ end of the headers provided by <b>smtp-sink</b>, and is
formatted as follows:
<b>from</b> <i>helo</i> <b>([</b><i>addr</i><b>])</b>
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
+ or EHLO, the client IP address is used
instead.
<b>by</b> <i>host</i> <b>(smtp-sink) with</b> <i>proto</i> <b>id</b> <i>random</i><b>;</b>
- The hostname specified with the <b>-h</b> option,
- the client protocol (see <b>X-Client-Proto</b>
+ The hostname specified with the <b>-h</b> option,
+ the client protocol (see <b>X-Client-Proto</b>
above), and the pseudo-random portion of the
per-message capture file name.
<a href="smtp-source.1.html">smtp-source(1)</a>, SMTP/LMTP message generator
<b>LICENSE</b>
- The Secure Mailer license must be distributed with this
+ The Secure Mailer license must be distributed with this
software.
<b>AUTHOR(S)</b>
[1-6].*) CCARGS="$CCARGS -DNO_IPV6";;
*) CCARGS="$CCARGS -DBIND_8_COMPAT -DNO_NETINFO";;
esac
- # Darwin 8.11.1 has kqueue support, but let's play safe
- case $RELEASE in
- [1-8].*) CCARGS="$CCARGS -DNO_KQUEUE";;
- *) trap 'rm -f makedefs.test makedefs.test.[co]' 1 2 3 15
- cat >makedefs.test.c <<'EOF'
-/* Adapted from libevent. */
-
-#include <sys/types.h>
-#include <sys/event.h>
-#include <sys/time.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifndef EV_SET
-#define EV_SET(kp, id, fi, fl, ffl, da, ud) do { \
- struct kevent *__kp = (kp); \
- __kp->ident = (id); \
- __kp->filter = (fi); \
- __kp->flags = (fl); \
- __kp->fflags = (ffl); \
- __kp->data = (da); \
- __kp->udata = (ud); \
- } while(0)
-#endif
-
-int main(int argc, char **argv)
-{
- int kq;
- struct kevent test_change;
- struct kevent test_result;
-
- if ((kq = kqueue()) < 0) {
- perror("kqueue");
- exit(1);
- }
-#define TEST_FD (-1)
-
- EV_SET(&test_change, TEST_FD, EVFILT_READ, EV_ADD, 0, 0, 0);
- if (kevent(kq,
- &test_change, sizeof(test_change) / sizeof(struct kevent),
- &test_result, sizeof(test_result) / sizeof(struct kevent),
- (struct timespec *) 0) != 1 ||
- test_result.ident != TEST_FD ||
- test_result.flags != EV_ERROR) {
- fprintf(stderr, "Error: kevent reports errors incorrectly\n");
- exit(1);
- }
- exit(0);
-}
-EOF
- $CC -o makedefs.test makedefs.test.c || exit 1
- ./makedefs.test 2>/dev/null ||
- CCARGS="$CCARGS -DNO_KQUEUE"
- rm -f makedefs.test makedefs.test.[co];;
- esac
- ;;
-Rhapsody.5*|"Mac OS".10*)
- SYSTYPE=MACOSX
- # Use the native compiler by default
- : ${CC=cc}
- AWK=gawk
+ # kqueue and/or poll are broken up to and including MacOS X 10.5
+ CCARGS="$CCARGS -DNO_KQUEUE"
+# # Darwin 8.11.1 has kqueue support, but let's play safe
+# case $RELEASE in
+# [1-8].*) CCARGS="$CCARGS -DNO_KQUEUE";;
+# *) trap 'rm -f makedefs.test makedefs.test.[co]' 1 2 3 15
+# cat >makedefs.test.c <<'EOF'
+#/* Adapted from libevent. */
+#
+##include <sys/types.h>
+##include <sys/event.h>
+##include <sys/time.h>
+##include <string.h>
+##include <stdlib.h>
+##include <stdio.h>
+#
+##ifndef EV_SET
+##define EV_SET(kp, id, fi, fl, ffl, da, ud) do { \
+# struct kevent *__kp = (kp); \
+# __kp->ident = (id); \
+# __kp->filter = (fi); \
+# __kp->flags = (fl); \
+# __kp->fflags = (ffl); \
+# __kp->data = (da); \
+# __kp->udata = (ud); \
+# } while(0)
+##endif
+#
+#int main(int argc, char **argv)
+#{
+# int kq;
+# struct kevent test_change;
+# struct kevent test_result;
+#
+# if ((kq = kqueue()) < 0) {
+# perror("kqueue");
+# exit(1);
+# }
+##define TEST_FD (-1)
+#
+# EV_SET(&test_change, TEST_FD, EVFILT_READ, EV_ADD, 0, 0, 0);
+# if (kevent(kq,
+# &test_change, sizeof(test_change) / sizeof(struct kevent),
+# &test_result, sizeof(test_result) / sizeof(struct kevent),
+# (struct timespec *) 0) != 1 ||
+# test_result.ident != TEST_FD ||
+# test_result.flags != EV_ERROR) {
+# fprintf(stderr, "Error: kevent reports errors incorrectly\n");
+# exit(1);
+# }
+# exit(0);
+#}
+#EOF
+# $CC -o makedefs.test makedefs.test.c || exit 1
+# ./makedefs.test 2>/dev/null ||
+# CCARGS="$CCARGS -DNO_KQUEUE"
+# rm -f makedefs.test makedefs.test.[co];;
+# esac
;;
dcosx.1*) SYSTYPE=DCOSX1
RANLIB=echo