smtp -- SMTP outbound channel for MMDF


smtp (called by deliver)


The SMTP outbound channel is part of the MMDF mail system. Smtp is called directly by deliver. It follows the standard deliver/channel protocol and handles outbound SMTP traffic. Smtp uses the channel configuration string to specify what it should place in the HELO string of the SMTP transaction, and to allow some other configuration parameters to be set. A parameter specified in the configuration string that is not assigned to a parameter name sets the HELO name. This will override the use of locname for this function.

Two timing parameters in the channel configuration string control the behavior when connecting to a remote SMTP server to deliver an outbound message. open_timeout is the amount of time (in seconds) that MMDF will wait for the TCP connection to be initially opened. 220_timeout is the amount of time MMDF will wait for a 220 greeting from the remote host (after the TCP connection has been opened).

These are intended only for resolving specific problems. Significantly reducing the timeouts may prevent mail from being delivered. RFC2821 specifies that a host "SHOULD" wait for 5 minutes for the 220 greeting. In particular, an increasingly popular anti-spam method is to require connecting hosts to wait for a substantial amount of time before delivering the 220 greeting, and a short 220 timeout may prevent mail from being delivered to hosts using this method.

The confstr parameter "charset" can be set to the value "8bit" to allow 8-bit characters to be transmitted unencoded. The default is to strip the high bit of all characters, in compliance with RFC821 and RFC2821. The smtp channel does not support 8BITMIME or any other SMTP extensions, so best practice is to transmit 8-bit data using 7-bit MIME encoding.

The following is a typical SMTP channel description from the mmdftailor file:

   MCHN	smtp, show="SMTP/TCP", que=smtp, tbl=smtp,
   	pgm=smtp, mod=reg, ap=822, confstr="SERING.UUCP"
If multiple parameters are given in the configuration string, they should be separated with commas. An example would be:

If host= is specified in the channel description, then the specified host is looked up in the channel table and used as the connect host regardless of the host to which the mail is addressed. This is useful when offloading mail addressed to a variety of destinations to a gateway for further delivery.

For file-based channel tables, smtp uses the RHS of the channel table as the IP address to which to connect. Alternate IP addresses may be specified by putting additional lines in the channel table with the same LHS. For example:

In this case, the smtp channel will attempt connection to first. If the connection fails or if the remote SMTP server doesn't start up in reasonable time, the next address will be tried. In the case of nameserver-type channel tables, multiple IP addresses are tried based on the available MX entries for that host. The port number given for smtp in /etc/services will be used. The default is 25.

See also

deliver(ADM), submit(ADM), smtpd(ADM)

Standards conformance

MMDF is not part of any currently supported standard; it was developed at the University of Delaware and is used with permission.
© 2004 The SCO Group, Inc. All rights reserved.