smtpfront(8)
πΈ smtpfront β SMTP Front Ends πΈ
okay bestie, welcome to smtpfront(8), straight out of the System Manager's Manual. sit down, grab a strawberry π, we're gonna talk about the front end of your mail server π
β¨ NAME β¨
smtpfront β the SMTP Front Ends, periodt π
β¨ SYNOPSIS β¨
smtpfront
that's it. that's the whole vibe. no flags, no drama π
β¨ DESCRIPTION β¨
so here's the tea β the SMTP code is split internally into two sections: front-end code and back-end code.
the front-end code handles all the low-level details of the protocol. the nitty gritty. the little protocol handshakes. π«Ά
the back-end code handles the validation and delivery details, and it does it in a protocol-independent fashion β like, it does not care which protocol is talking to it, it's just here to validate and deliver, no cap β¨
β¨ FEATURES β¨
these are the things that are common to all the SMTP front-ends. every single one. iconic behavior honestly π
- Validates senders and recipients according to ``mailrules'' processing. π
- If
$RELAYCLIENTis set, all recipient addresses that aren't rejected by mail rules are allowed, and its contents get appended to each recipient address. Back-end validation is omitted. (so you're just trusting them, bestie π«‘) - Handles RFC 2554 SMTP authentication. after authentication, all recipients not rejected by mail rules are allowed, and back-end validation is omitted. she said "you're in, girl" π
- Automatically handles either bare
NLor RFC 821/2821 compliantCR/NLend-of-line conventions. both. she doesn't judge. π¦ - Rejects messages that exceed
$DATABYTESbytes in the body. π« - Times out connections after
$TIMEOUTseconds of inactivity (defaults to 1200 seconds or 20 minutes), or$SESSION_TIMEOUTseconds after the connection was established (defaults to 86400 seconds or 24 hours). β° - Counts the number of
"Received:"and"Delivered-To:"headers, and rejects the message if more than$MAXHOPSof either are seen (defaults to 100). π’ - All error responses are logged. π
- Handles (ignores) RFC 1869 extended parameters on the
RCPT TO:andMAIL FROM:commands. π - Initial greeting message is configureable by
$SMTPGREETING. say hi how you wanna say hi β¨ - Rejects bounce messages (messages with an empty envelope sender) that attempt to deliver to multiple recipients. nope. not today. π
- Optionally adds a fixup
"Received:"header for hosts that have different incoming and outgoing hostnames or IPs. Set$FIXUP_RECEIVED_HOSTand$FIXUP_RECEIVED_IPif you want this header added. π
β¨ BACK ENDS β¨
okay so these are the back ends you can pair her with. pick your fighter π
smtpfront-echo
Uses the echo backend to simply echo back the sender and recipient parameters, and the size of the data to the client. it's giving mirror. it's giving "i'm just repeating what you said" πͺ
smtpfront-qmail
Uses the qmail validation features'' to validate addresses, and the qmail backend'' to deliver messages. the classic. the icon. the moment. π
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)π¦
and the sacred texts, bestie:
/usr/share/doc/mailfront/html/mailrules.html
/usr/share/doc/mailfront/html/qmail-validate.html
/usr/share/doc/mailfront/html/qmail-backend.html
and the link, iykyk:
http://untroubled.org/mailfront/
and that's the whole page, bestie!! π this was smtpfront from section 8, the System Manager's Manual β go forth and validate those senders and recipients, you absolute main character πβ¨π«Ά
π¦ where this page comes from
- debian bookworm: mailfront 2.12-2
- ubuntu jammy: mailfront 2.12-1
- ubuntu noble: mailfront 2.12-2build2
- ubuntu resolute: mailfront 2.12-2build2
- ubuntu stonking: mailfront 2.12-3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms