## MailFront

# Standard Handlers

## Overview

The most useful protocol front-ends and delivery back-ends are joined by a set of standard handlers. These handlers integrate the operation of mail rules, pattern matching, several miscellaneous options and back-end validation and delivery functions.

## Features

The following features are common to all front-ends that use the standard handlers:

- Validates senders and recipients according to mail rules processing.
- Requires all addresses except the null sender to contain a fully qualified domain name.
- 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.
- Rejects messages that exceed `$DATABYTES` bytes in length.
- Counts the number of "`Received:`" and "`Delivered-To:`" headers, and rejects the message if more than `$MAXHOPS` of either are seen (defaults to 100).
- 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.
- Optional user-specified headers may be added by setting `$HEADER_ADD`.
- If `$CVM_LOOKUP` is set, recipients are sent to the named CVM to see if they are valid. If `CVM_LOOKUP_SECRET` or `$LOOKUP_SECRET` are set and not empty, the value is sent as a single credential to the CVM.
- If `$MAXRCPTS` is set, the number of recipients allowed per message is limited to that number.
- Support for pattern matching in the message data.
- Support for adding additional plugins at run time. Set `$PLUGINS` to a colon separated list of plugin names, and optionally set `$MODULE_PATH` to the directory in which those plugins are contained.
- If `$PLUGINS` includes `require-auth`, all mail is rejected unless either `$RELAYCLIENT` is set or the sender authenticates.