I'm curious about self-hosting email as a way to learn. SMTP looks simple at first, so where do the protocols and deliverability get complicated?
What makes running your own mail server so complicated?
Answers
SMTP is only one piece of the journey. A mail client submits a message, a server looks up the recipient domain's MX records, and mail transfer happens between servers. If delivery fails temporarily, the sending server can queue the message and retry later. Email isn't necessarily instant.
There are also different sender fields. The SMTP envelope sender and the visible From address serve different purposes, so forcing them to match would break some legitimate uses without proving that either one is trustworthy.
Reply to this answer
The practical headache is getting other servers to accept and trust your mail. You'll need to understand SPF, DKIM and DMARC, then configure and check the relevant DNS records. Even DNS changes can take time to show up, which makes troubleshooting less straightforward.
For a project that just needs to send email, using a dedicated sending service is another option. Running the server yourself makes more sense if learning the machinery is part of the goal.
Reply to this answer
Email was built around letting different systems exchange messages without everyone having to approve each sender in advance. That's useful, but it also leaves plenty of room for abuse and adds security work around a fairly simple protocol.
There's a tradeoff here. More restrictive systems can make unwanted contact harder, but they can also make ordinary communication between organizations less open.
Reply to this answer
Add your answer
Answers are reviewed before publication.
_briefly!unsorted_8:
And a convincing display name isn't proof of who sent a message. Showing the actual address can help people spot some deceptive messages, though it doesn't solve the whole problem.