Why have you never been able to do it? I set up a full mail system years ago on a Xen/Linux VPS with stuff like Postfix, maildrop, Courier IMAP, a custom set of MySQL tables for aliases and such, and at one point migrated my TLS from CACert to LetsEncrypt. I enjoyed some aspects of the huge pain in the ass that all of that was, and having it work nicely was great. Spinning up a new email alias was easy and free, so I created a new one for damn near every site I interacted with, which later turned into a form of lock in having to continue running my server.
The continual server maintenance was a pain in the ass, requiring me to remember in substantial detail how it all worked so that I could appropriately integrate new things I had to learn like SPF and DMARC. I’m glad to have had some detailed sysadmin experience, but I was so glad in the end to finally migrate away from all that and just pay Fastmail instead.
I still have nearly the same flexibility with Fastmail and my custom domains, but they’re the ones that need to do all the maintenance. I can’t scale across unlimited domains for the same zero marginal cost, but I can make it work for a reasonable price with a few domains and scale arbitrarily within that. I’m sure there are other hosts out there that do a similarly good job, and Fastmail hasn’t been without its own troubles, but it’s been a net win for me.
I don’t recommend running your own server. I won’t do it again. I do recommend building an army of custom aliases all at your own custom domain(s).
Thanks for this tip - I never would have thought to try that if I hadn’t found this comment through a search. It’s a very unintuitive process, and it also seems buggy (I can’t do guest browsing on a server where I’m also logged into an account; instead of the guest option I get an error message demanding that I supply a username and password).
Have you considered making the guest browsing workflow more obvious at the join/login screen? Or perhaps better yet, providing a mechanism to see the list of default communities a server recommends? By that I mean whatever shows up in the communities list when browsing a server anonymously (such as viewing https://vger.app/posts/sh.itjust.works on the web).
But even that wouldn’t cover what I really want, which is to see a list of all communities on a server, so that if I notice one interesting federated community I can easily browse what other communities exist on the server that might also pique my interest. Maybe the thing I want is being able to put an empty “@server.tld” into the search box and be shown all communities registered there.