An independent software engineer writes on devops, cloud infrastructure, hiring, and futurist essays, under the name Exration.
HN mostly links its 2012 Ubuntu mail server guide using Postfix and Dovecot, which commenters use as a starting tutorial, and a comment-spam blocking method.
Mmm. I'm sure people have had bad experiences. However I run my own mail server (and no others who also do) for myself, my company and a few other domains I host with almost no effort. It's true I have fewer than a dozen users, but I'm sure most people would be the same way.
I just upgraded it this weekend, otherwise I haven't actually had to touch it in the 5 years since I originally set it up. Support ends for the Ubuntu LTS release it was based on next month, and I chose to migrate to new server software (dovecot) without much difficulty at all. I think anyone moderately skilled with sysadmin tendencies could manage it.
A good guide is here (though I am not running the described spam or virus filtering, and neither am I using EC2 myself): http://www.exratione.com/2012/05/a-mailserver-on-ubuntu-1204-postfix-dovecot-mysql/ - there are many other guides online.
But I confess I personally have a gmail account that I use most of all. I receive lots of mail daily, and none of the open-source clients (webmail or otherwise) have managed to compare in terms of usability. Priority Inbox is the most recent example of something that I would struggle to live without.
I've used this sort of Javascript-based approach for years, with great success:
http://www.exratione.com/2010/12/how-to-block-999-of-all-movable-type-comment-spam/
It works very well unless you're big enough to merit individual attention from a spammer. It's not rocket science - it just raises the bar a little above the level of effort that people who spam everything, everywhere are willing to put in.
That might change.
The real merit of Javascript used this way is that there are so many different possible approaches and ways to write the code that parsing has to be done on a site-by-site basis. It should even be possible to write something that auto-generates -and-mixes various combinations to make it annoying and costly for an individual to keep working at breaking the protection, and thus increasing the size of community/site you could protect this way.
My specialties: devops, cloud computing, full stack software engineering, architecture, leading teams.
I am a senior full stack software and devops engineer, experienced with cloud infrastructure, and as an architect and team lead. My experience in the industry is divided fairly evenly between early stage startups, larger companies, and more traditional consulting. I am strongly in favor of cloud computing, open source software, comprehensive documentation, empowered user communities, and unregulated
markets.
Website: https://www.exratione.com
GitHub: https://github.com/exratione
Location: Austin, TX
Remote: Yes
Willing to relocate: for the right position
Technologies: Primarily Javascript, PHP, and Java stacks for application engineering, then just about every known scripting language and flavor of Unix for the devops side of life.
This is why I setup my own email server...
Here is a great guide for anyone interested: https://www.exratione.com/2012/05/a-mailserver-on-ubuntu-1204-postfix-dovecot-mysql/
I set mine up on CentOS 5 using this guide. I would recommend you also look at DKIM signing and SPF records to improve deliverability! :)
The software side looks like someone just executed an ancient Postfix + Squirrelmail + Dovecot tutorial[0] and cobbled together a horrible UI for it.
[0]: https://www.exratione.com/2012/05/a-mailserver-on-ubuntu-1204-postfix-dovecot-mysql/
My starter pages:
https://www.exratione.com/2012/05/a-mailserver-on-ubuntu-1204-postfix-dovecot-mysql/
https://help.ubuntu.com/community/PostfixCompleteVirtualMailSystemHowto