A flexible SMTP server that's open source or free [closed]
Solution 1:
Every recent mail server is capable of doing the job with that minimal requirements you provide. You are sending only 800 mails per hour. This can be done in 5 minutes without pain.
So check the server that fits your requirements. Any of Sendmail, Courier, Qmail, Exim or (my favorite) Postfix can do what you want. Without any problem.
Edit:
But I would not jump on the train to use your "recommended" solutions. They are exotic mail servers whereas the mentioned above have a history of over 10 years of development. Sendmail is even 18 years old and it's ancestor even 30 years. So stick with the "good old" ones.
Solution 2:
Testing Haraka
for a while now and I would recommend nothing else but this. Haraka is actually a framework where everything is a module. Very easy to use, source code is readable, available on github, no magic. DKIM/SPF support included over plugins. I don't have speed tests for now but so far I don't have any serious issues. I wrote a working production app on top of it for a client in less then a week.
Btw... I used Postfix and Exim4 in the past. I have good memories with Postfix and bad with Exim4 (bugs). Anyway, I'm not a fen of the previous century stuff and playing with that-like configuration syntax just doesn't fit into my workflow any more :).
I hope it helps.
Solution 3:
our ISP got the impression we were sending spam
Not a big surprise. Managing an email server is not a trivial task, configuring/managing an email server for bulk emailing requires a lot more skill (SPF/DKIM is just the start of the story).
You're email volumes are large enough for you to start running into problems even if you run your own server - but probably not large enough for it to be financially viable to acquire and maintain the level of knowledge to operate the service yourself. I'd strongly recommend looking for a reputable bulk email provider (sorry, can't give you any specific leads).
If you do want to go down the route of running your own server, I would recommend steering clear of MSExchange - IME its expensive, difficult to configure/maintain and less reliable than most of the other mainstream MTAs.
Obvious candidates would be sendmail (very configurable - but requires a through understanding) or postfix (much easier to configure, and the lower throughput is unlikely to be an issue). You definitely want something with milter support. Based on previous experience, Exim and Qmail lag a long way behind in terms of stability.
If you really must run it on MSWindows, have a look at iMail - but AFAIK it does not support sophisticated queue management.
Solution 4:
Does anyone here have any experience with the above and how quick and easy are either to implement, maintain and extend?
I have some experience with Sendmail (dozens of servers, 0 current), Qmail (thousands of servers, 3 current), Postfix (hundreds of servers, 25 current), Qpsmtpd (tens of servers, 1 current), and Haraka (tens of servers, 7 current). This is painting in broad strokes, but in general:
- Sendmail is moderately difficult to set up and maintain and moderately difficult to extend.
- Qmail is moderately difficult to set up, easy to maintain, and difficult to extend.
- Postfix is easy to set up, easy to maintain, and moderate to extend.
- Qpsmtpd is moderate to install, easy to maintain, and easy to extend, if you grok perl.
- Haraka is easy to install, easy to maintain, and easy to extend, if you grok Javascript.
Of course, all of those comments assume that you grok SMTP.
Which MTA is "best" really depends on the task. For most common tasks, Postfix is my default choice. If sendmail is installed by default, I replace it with Postfix. Besides what's discussed above, Postfix is small, fast, and reasonably secure. For inbound MTAs that need to do more than minimal filtering and validation, I always put Haraka out front. It's crazy fast and more importantly, it permits an amazing amount of control over what gets accepted.
My favorite feature of Haraka is the karma plugin. (disclaimer: I wrote it) It implements a heuristics engine that looks at dozens of bits of information (remote IP, past connections from that IP and ASN, FCrDNS, DNSBLs, etc.) and scores each connection. It's a lot like SpamAssassin, except it's wicked fast. Unlike SpamAssassin, it can be deployed out front when hundreds or thousands of concurrent inbound connections are the norm. In typical deployments, less than 10% of connections make it past the DATA phase when the resource heavy plugins like DKIM and SpamAssassin run.
What about DKIM and SPF support?
Sendmail and Postfix add DKIM and SPF support via the milter interface. It's a little fidgety to set up (there's plenty of HowTo's) but it works well. Qmail adds SPF via patches and DKIM via really painful ugly hacks. Qpsmtpd and Haraka both have native (perl and JS respectively) plugins that add SPF and DKIM support. With QP and Haraka, SPF, DKIM, and DMARC are all as simple as enabling the built-in plugins.
What about dealing with such a high volume and required speed?
Your volume isn't high, any of the MTA's listed will handle it.
You will likely find that signing messages via the DKIM milter will drop your MTA performance (whether Postfix or Sendmail) to about 1/10 its native performance. Unless you enjoy pain, don't even try with Qmail. With QP and Haraka, DKIM is just another plugin and the only noticeable difference after enabling DKIM is increased RAM consumption.
Am i likely still to come across spam filtering issues and problems with my ISP?
Not based on your MTA. Spam filtering issues and problems with your ISP happen because you are sending out messages that are being returned, reported, or rejected. Make sure all your outbound messages carry your envelope information so that the bounces and DSNs come back to you. Make sure to accept them, parse the contents, and update your database accordingly.