5 ms·
Please don't mix up things. I wrote "You need dozens of programs including sendmail/postfix and each has its own config format." If you only send emails, you on
by castell 11y ago
Please don't mix up things. I wrote "You need dozens of programs including sendmail/postfix and each has its own config format." If you only send emails, you only need one application sendmail or a clone like postfix. (postfix was indeed created to fix some of the annoyance of sendmail) It's easy enough to set up. But if you need an inbox so that you can receive emails too, you need the whole bunch of applications that will require you to install craylists, antivirus (claimav), etc. - I doubt that this process takes you just a couple of minutes. Or do you work for an email hosting provider with a bunch of proprietary scripts?
- tedunangst 11y agoIm not sure why you assume it's a given that anybody writing an email server in go will include clamav functionality out of the box.
- pjc50 11y agoWell, this was sort of what I was getting at: things like antispam and antivirus are plugins that are inherently high-configuration. You could Apple-ise the process by making a single suite of software that installs as a unit and gives you a system that can receive inbound mail, store in a DB (ie, ditch mbox and maildir), make it available over IMAP, POP and some JSON API. Then all you'd have to do is give it a list of domains and users for those mail domains. That's the 80% solution. But I guarantee people will start campaigning for features which require configuration complexity.
- spacehunt 11y agoAh, I assumed you meant only the SMTP pipeline - my bad. But what you said was like saying setting up a Web site is hard because you need to deal with haproxy, nginx, hooking up recaptcha, implementing OAuth2 and so on. I don't think rewriting everything in Go is going to help. I did work at an email service provider years ago though, so I concede I might be more familiar about email than most people.
- castell 11y ago> I don't think rewriting everything in Go is going to help. I meant a single Go executable that provides most functionality of a common email server (SMTP, POP3, IMAP, inbox, web admin interface, webmail). (anti-virus, anti-spam, ... would still be external third party processes) A Go executable would be easy to update and can be compiled for many platforms. Updating a unix style mail server with like a dozens of programs that call each other in a pipeline style way is non trivial - except you do it as your main work. The same goes for the configuration of each component so that everything works together.