Self-hosted email absurdities - sending mail

Sending email is hard. Yes, that’s right. If you don’t own or control your whole IP subnet and have built-up reputation on it, you aren’t reaching anything other than the recipient’s spam folder.

This is why many admins are even saying that self-hosted email is dead, which is partially true. This would make one of the most widely used decentralized systems unviable and in the hands of the few companies at the top: Microsoft (365), Google (GSuite or whatever they call it nowadays) and a couple of huge hosting providers.

Good solutions

If you have full control over who sends emails from your subnet and you actually do send a lot of emails from there and build up reputation, it can work. But nobody has this for a homelab-based setup or small operations. Buying a VPS from any hosting provider will not really help, nor will renting a dedicated server. The go-to solution for sending emails alone would be services like sendgrid, mailchimp, sendinblue, amazon ses and so on. These work, most of them are even free for the usual few emails daily that a personal mailbox has to handle.

Best solution

However I wanted to sign the outgoing mail with my DKIM keys and not have any other modifications done to it. Originally and for a long time, I was using Outlook Premium from Microsoft 365 subscription to only send emails while using my own hosting for the storage and receiving emails. The hack is described here: I was unable to set up this hacky solution on new domains and they’re sunsetting it after 2023 anyway. So another provider that I found where this worked was Zoho Mail. Moreover, you can set it up for free and relay emails through them. They will not sign with DKIM automatically, so you can use your own signatures. Neither will email clients show a “via” or similar information in the message details.

To be honest, I am worried that this will cease to work eventually, but it works for now. I’d even go as far as to pay 10-20 cents per email, same as I do for SMS messages, if it worked exactly the way I want it and the delivery would be guaranteed but that still depends on the receiving end and there’s nothing the sending party can do about it.