1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
<html>
<body>
<h2><a href="mailfront.html">MailFront</a></h2>
<h1>SMTP Front Ends</h1>
<hr>
<h2>Overview</h2>
<p>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.</p>
<h2>Features</h2>
<p>The following features are common to all SMTP front-ends: <ul>
<li>Handles <a href="http://www.faqs.org/rfcs/rfc2554.html">RFC 2554</a>
SMTP authentication. After authentication all recipients not rejected
by mail rules are allowed, and back-end validation is omitted.
<li>Automatically handles either bare NL or <a
href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a> / <a
href="http://www.faqs.org/rfcs/rfc2821.html">RFC 2821</a> compliant
CR/NL end-of-line conventions.
<li>Times out connections after <tt>$TIMEOUT</tt> seconds of inactivity
(defaults to 1200 seconds or 20 minutes), or <tt>$SESSION_TIMEOUT</tt>
seconds after the connection was established (defaults to 86400 seconds
or 24 hours).
<li>All error responses are logged.
<li>Handles (ignores) <a
href="http://www.faqs.org/rfcs/rfc1869.html">RFC 1869</a> extended
parameters on the <tt>RCPT TO:</tt> and <tt>MAIL FROM:</tt> commands.
<li>Initial greeting message is configureable by
<tt>$SMTPGREETING</tt>.
<li>Supports <a href="http://www.faqs.org/rfcs/rfc1870.html">RFC
1870</a> SMTP Service Extension for Message Size Declaration.
<li>If <tt>$MAXNOTIMPL</tt> is set, clients are disconnected if they
send more than the specified number of commands that result in a
"<tt>500 Not implemented.</tt>" error.
</ul></p>
<h2>Back Ends</h2>
<dl>
<dt><tt>smtpfront-echo</tt> <dd><p>Uses <a
href="std-handle.html">standard handlers</a> with the echo backend to
simply echo back the sender and recipient parameters, and the size of
the data to the client.</p>
<dt><tt>smtpfront-qmail</tt> <dd><p>Uses <a
href="std-handle.html">standard handlers</a> with the <a
href="qmail-validate.html">qmail validation features</a> to validate
addresses, and the <a href="qmail-backend.html">qmail backend</a> to
deliver messages, and is <a href="msa.html">MSA compliant</a>.</p>
<dt><tt>smtpfront-reject</tt> <dd><p>If <tt>$SMTPREJECT</tt> is set,
all SMTP commands are rejected with this message. If the message
starts with a "<tt>-</tt>", a permanent error number is used and the
leading "<tt>-</tt>" is stripped. If <tt>$SMTPREJECT</tt> is not set,
it execs its command line.</p>
</dl>
</body>
</html>
|