---
name: "smtpfront"
section: "8"
platform: "linux"
package: "mailfront"
version: "2.12-2"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/smtpfront"
---

# smtpfront(8)

SMTP Front Ends

## NAME

smtpfront - 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:

- 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.

## 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.

## SEE ALSO

[pop3front(8)](/pop3front/8.md)

 /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/
