smtpfront(8)
SMTP Front Ends
SYNOPSIS
smtpfront
DESCRIPTION
The code for SMTP is divided internally into two sections:
front-end and back-end code.
The front-end code handles the low-level details of the protocol.
The back-end code handles the validation and delivery details in a
protocol-independant fashion.
FEATURES
The following features are common to all SMTP front-ends:
-
Validates senders and recipients according to ``mailrules'' processing.
-
If
$RELAYCLIENT
is set, all recipient addresses not rejected by mail rules are allowed,
and its contents are appended to each recipient address.
Back-end validation is omitted.
-
Handles RFC 2554 SMTP authentication.
After authentication all recipients not rejected by mail rules are allowed,
and back-end validation is omitted.
-
Automatically handles either bare NL or RFC 821/2821 compliant CR/NL
end-of-line conventions.
-
Rejects messages that exceed
$DATABYTES
bytes in the body.
-
Times out connections after
$TIMEOUT
seconds of inactivity (defaults to 1200 seconds or 20 minutes), or
$SESSION_TIMEOUT
seconds after the connection was established (defaults to 86400 seconds or
24 hours).
-
Counts the number of "Received:" and "Delivered-To:" headers, and rejects
the message if more than
$MAXHOPS
of either are seen (defaults to 100).
-
All error responses are logged.
-
Handles (ignores) RFC 1869 extended parameters on the ``RCPT TO:''
and ``MAIL FROM:'' commands.
-
Initial greeting message is configureable by
$SMTPGREETING.
-
Rejects bounce messages (messages with an empty envelope sender) that
attempt to deliver to multiple recipients.
-
Optionally adds a fixup "Received:" header for hosts that have different
incoming and outgoing hostnames or IPs.
Set
$FIXUP_RECEIVED_HOST
and
$FIXUP_RECEIVED_IP
if you want this header added.
BACK ENDS
- smtpfront-echo
-
Uses the echo backend to simply echo back the sender and recipient
parameters, and the size of the data to the client.
- smtpfront-qmail
-
Uses the ``qmail validation features'' to validate addresses, and
the ``qmail backend'' to deliver messages.
- smtpfront-reject
-
If
$SMTPREJECT
is set, all SMTP commands are rejected with this message.
If the message starts with a "-", a permanent error number is used and the
leading "-" is stripped.
If
$SMTPREJECT
is not set, it execs its command line.