smtpfront − SMTP Front Ends
smtpfront
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.
The following features are common to all SMTP front-ends:
o |
Validates senders and recipients according to ‘‘mailrules’’ processing. |
||
o |
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. |
||
o |
Handles RFC 2554 SMTP authentication. After authentication all recipients not rejected by mail rules are allowed, and back-end validation is omitted. |
||
o |
Automatically handles either bare NL or RFC 821/2821 compliant CR/NL end-of-line conventions. |
||
o |
Rejects messages that exceed $DATABYTES bytes in the body. |
||
o |
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). |
||
o |
Counts the number of "Received:" and "Delivered-To:" headers, and rejects the message if more than $MAXHOPS of either are seen (defaults to 100). |
||
o |
All error responses are logged. |
||
o |
Handles (ignores) RFC 1869 extended parameters on the ‘‘RCPT TO:’’ and ‘‘MAIL FROM:’’ commands. |
||
o |
Initial greeting message is configureable by $SMTPGREETING. |
||
o |
Rejects bounce messages (messages with an empty envelope sender) that attempt to deliver to multiple recipients. |
||
o |
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. |
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.
/usr/share/doc/mailfront/html/mailrules.html
/usr/share/doc/mailfront/html/qmail-validate.html
/usr/share/doc/mailfront/html/qmail-backend.html
http://untroubled.org/mailfront/