smtpfront - SMTP Front Ends
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.
pop3front(8)
  
   /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/