qmail-smtpd(8) - Linux man page
Name
qmail-smtpd - receive mail via SMTP
Synopsis
qmail-smtpd [ hostname checkprogram subprogram ]
Description
qmail-smtpd receives mail messages via the Simple Mail Transfer Protocol (SMTP) and invokes qmail-queue to deposit them into the outgoing queue. qmail-smtpd must be supplied several environment variables; see tcp-environ(5).
qmail-smtpd is responsible for counting hops. It rejects any message with 100 or more Received or Delivered-To header fields.
qmail-smtpd supports ESMTP, including the 8BITMIME, PIPELINING, and AUTH options.
qmail-smtpd can accept LOGIN, PLAIN, and CRAM-MD5 AUTH types. It invokes checkprogram, which reads on file descriptor 3 the username, a 0 byte, the password or challenge derived from hostname, another 0 byte, a CRAM-MD5 response (if applicable to the AUTH type), and a final 0 byte. checkprogram invokes subprogram upon successful authentication, which should in turn return 0 to qmail-smtpd, effectively setting the environment variables RELAYCLIENT and TCPREMOTEINFO (any supplied value replaced with the authenticated username). qmail-smtpd will reject the authentication attempt if it receives a nonzero return value from checkprogram or subprogram.
Transparency
qmail-smtpd converts the SMTP newline convention into the UNIX newline convention by converting CR LF into LF. It returns a temporary error and drops the connection on bare LFs; see http://pobox.com/~djb/docs/smtplf.html.
qmail-smtpd accepts messages that contain long lines or non-ASCII characters, even though such messages violate the SMTP protocol.
Control Files
badmailfrom
- Unacceptable envelope sender addresses. qmail-smtpd will reject every recipient address for a message if the envelope sender address is listed in badmailfrom. A line in badmailfrom may be of the form @host, meaning every address at host.
- databytes
- Maximum number of bytes allowed in a message, or 0 for no limit. Default: 0. If a message exceeds this limit, qmail-smtpd returns a permanent error
code to the client; in contrast, if the disk is full or qmail-smtpd hits a resource limit, qmail-smtpd returns a temporary error code.
databytes counts bytes as stored on disk, not as transmitted through the network. It does not count the qmail-smtpd Received line, the qmail-queue Received line, or the envelope.
If the environment variable DATABYTES is set, it overrides databytes.
- localiphost
- Replacement host name for local IP addresses. Default: me, if that is supplied. qmail-smtpd is responsible for recognizing dotted-decimal addresses for the current host. When it sees a recipient address of the form box@[d.d.d.d], where d.d.d.d is a local IP address, it replaces [d.d.d.d] with localiphost. This is done before rcpthosts.
- morercpthosts
- Extra allowed RCPT domains. If rcpthosts and morercpthosts both exist, morercpthosts is effectively appended to rcpthosts.
You must run qmail-newmrh whenever morercpthosts changes.
Rule of thumb for large sites: Put your 50 most commonly used domains into rcpthosts, and the rest into morercpthosts.
- rcpthosts
- Allowed RCPT domains. If rcpthosts is supplied, qmail-smtpd will reject any envelope recipient address with a domain not listed in
rcpthosts.
Exception: If the environment variable RELAYCLIENT is set, qmail-smtpd will ignore rcpthosts, and will append the value of RELAYCLIENT to each incoming recipient address.
rcpthosts may include wildcards:
heaven.af.mil .heaven.af.mil
Envelope recipient addresses without @ signs are always allowed through.
- smtpgreeting
- SMTP greeting message. Default: me, if that is supplied; otherwise qmail-smtpd will refuse to run. The first word of smtpgreeting should be the current host's name.
- timeoutsmtpd
- Number of seconds qmail-smtpd will wait for each new buffer of data from the remote SMTP client. Default: 1200.
See Also
tcp-env(1), tcp-environ(5), qmail-control(5), qmail-inject(8), qmail-newmrh(8), qmail-queue(8), qmail-remote(8)
History
The patch enabling the ESMTP AUTH option is not part of the standard qmail-1.03 distribution.
