5

We currently have our own in-house email marketing software for our newsletters, and were using SQL server's SMTP agent to send emails through our local SMTP server (IIS) and then onto our ISP's SMTP Relay.

The SQL Server was involved because the email addresses of the recipients are stored in the database and because it takes the content of the newsletters and we use .net to construct the emails for delivery.

About 1 month ago our ISP got the impression we were sending spam (our email volume is approx 20k a day) and blocked the SMTP relay. After much debate with them, we've given up with them, but realised that they came to this conclusion due to the high volume of NDRs.

We've solved the problem with the NDRs but going back to the ISP SMTP relay isnt currently an option.

Using IIS as a direct SMTP server is not ideal because we cant implement systems that will help us to deal with bypassing spam filters since we need to implement DKIM and SPF and its not so easy on IIS.

We tried using our shared hosting accounts with just standard SMTP hosting to send out our emails from the SQL server but the email limit is set to 300/hr which isnt high enough, and currently using something like SendGrid is just too costly at this volume since we dont profit from the newsletters.

While i have previous experience with Exchange 2003 and 2007 i just find the maintenance and hardware requirements to be quite involved at times and am looking for a minimal but flexible and capable solution for an SMTP that can support DKIM and SPF.

I have been considering something like QPSMTPD or the Node.js port; Haraka.

Does anyone here have any experience with the above and how quick and easy are either to implement, maintain and extend?

What about DKIM and SPF support?

What about dealing with such a high volume and required speed?

Am i likely still to come across spam filtering issues and problems with my ISP?

Does anyone have any insight they can share on this matter?

2
  • 3
    You're asking a LOT of questions in one. To improve on your question, I think you should be asking: "What is the best way to send out a high volume email newsletter and manage the NDRs/unsubscribes appropriately?"
    – MikeyB
    Oct 27, 2011 at 0:05
  • There is also Apache James, that is free, open source and written in Java. It is quite flexible, I believe, although it might have some rough edges that require you to get your hands dirty... For sure, it seems extendable enough for most jobs. Apr 7, 2020 at 15:44

4 Answers 4

11

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.

1
  • 1
    I send 500 mails in a minute with postfix on a tiny virtual machine. There really is no need to go crazy here. Sep 5, 2014 at 17:30
3

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.

1

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.

1

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.

Not the answer you're looking for? Browse other questions tagged .