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 $RELAYCLIENT is 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 NL or RFC 821/2821 compliant CR/NL end-of-line conventions. both. she doesn't judge. πŸ¦‹
  • Rejects messages that exceed $DATABYTES bytes in the body. 🚫
  • 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). ⏰
  • Counts the number of "Received:" and "Delivered-To:" headers, and rejects the message if more than $MAXHOPS of either are seen (defaults to 100). πŸ”’
  • All error responses are logged. πŸ“
  • Handles (ignores) RFC 1869 extended parameters on the RCPT TO: and MAIL 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_HOST and $FIXUP_RECEIVED_IP if 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 ✨

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