I had forgotten how few people actually understand email, and honestly how complicated it is when you’re coming to it just understanding an email client and maybe a web browser. Even if you understand programming.
Firstly there’s the SMTP protocol, which people don’t understand is a chatty back and forth protocol with possible errors and results at each stage.
Then there’s the matter of relaying or whether you should accept email or not. To do that in Haraka you need to have a plugin determine it – but people used to coding for web servers get confused by that.
Then there’s the matter of the contents of the email itself – it’s all reasonably easy with non-MIME emails, but it gets complicated FAST with MIME emails.
I’ve not coded around any of this in Haraka – a lot of Haraka is a straight interface to SMTP itself, and even the email parser maintains the MIME structure so you have to walk down the child nodes sometimes to get at the message body. This is confusing for people that don’t understand multi-part MIME.
I’m not sure what the right level is here to aim at. If you write Apache modules they assume you understand HTTP, but if you code in Rails you really don’t have to understand much at all. Should Haraka be the Apache or the Rails?