Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently developing an application which may have to send a large amount of e-mails at once. I was wondering what you guys would recommend as the fastest (e-mails sent per minute) mail server to install on a server to do this and do you have any recommendations for the architecture of this solution to balance the load.



share|improve this question

closed as off-topic by Jenny D, kasperd, Ward, HBruijn Apr 16 at 15:45

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

As a side note, having too fast of a sending rate to the same domain can get you flagged and temporarily banned, so either at the application level or in the delivery mechanism, you may want to implement a self-throttle per domain. This will likely only be ones like yahoo, hotmail, etc. For example, I have a customer with a 50,000 user mailing list, about 20,000 of those emails are addresses and yahoo gets very unhappy with us if we try to blast them with 20,000 emails all at once. – ManiacZX Feb 4 '10 at 3:25

I think bandwidth is going to be more of a limiting factor here than anything relating to speed of the server itself. Also be aware that your own server is only the first link in the chain, and anything you send out will need to pass through multiple layers of gateways, routers, firewalls, etc, as well as the recipents server, anyone of which could constitute a significant bottleneck. If you're going over the internet rather than internally within an organisation, performance and even basic reliability (will the email actually arrive?) will be completely outside of your control. Finally, the type of email you send (plain text? rich text? HTML? any attachments? embedded images? size of the message?) will have an extremely large bearing.

In summary I think you're barking up the wrong tree by just looking at the raw speed of your own server.

share|improve this answer
I know it relies on other variables like that but I just want to know, in optimal conditions with a average message size which one would be fastest. Also if I clustered a few servers how would I organize this solution so I get the best performance. Would I need one main machine that passes the requests to slave machines? or would you go with another type of setup – user33752 Feb 3 '10 at 22:46
Define "average message size". Sorry, but things are just too variable to give a clearer answer. Some idea of how many emails is "a large amount" might help too - you might find that even a lightweight server (like the SMTP server that comes with IIS) is sufficient, and anything else is just throwing money away. Finally, as you're a developer you might even bypass an email server and just connect to port 25 of the remote machine, then issue SMTP commands direct using a networking API instead. – 21st Century Moose Feb 3 '10 at 23:55

Back in 1996, a Pentium 90 with 16MB ram (and ide disk under Red Hat (4.x?) with no tweaks at all on a T1) I ran could send 70k+ email in a few hours (much faster than the dual P100 NT box with Goldmine could generate them).

So at least with a Unix, I very much doubt the mail server hardware or software will be the issue, but rather what pushes them into your mail queue, and not getting them flagged as spam.

share|improve this answer

I don't recommend you do this yourself.

Spammers have ruined email such that it takes a lot of skill to setup an email server so that your messages don't get flagged as spam by a large percentage of recipients.

Instead, look at externally hosted managed email services. I can't recommend any from personal experience, but they will do all the heavy lifting for you for a few bucks a month.

The good ones will have an API for you to upload messages in batches.

EDIT: If you really MUST do it yourself (maybe you are a spammer?), try Lamson

share|improve this answer
Yeah, the company I work currently uses Campaign Monitor. While it is good for simple online e-mail I need to use this service in a desktop application and their API is too constricting for what I'm trying to do, it is the same with other competing services. I don't mind doing the configuring at all to be honest will probably learn a lot doing it and this is a personal project so will have plenty of time to. – user33752 Feb 3 '10 at 22:28
oh and not a spammer :) just trying to produce a service similar to campaign monitor but with a better API so others in my position don't have to do the same thing – user33752 Feb 3 '10 at 22:32
The services don't just offer technology, at least not usually. They also offer a reputation to the mail reputation score places and spam block lists. If there's was nothing coming out of one of your IP's one day and 6 million messages a day the next, you'll probably be spending a lot of time trying to clear all the blocks that generates. It's not a fun process, nor is it a very transparent one. – Bob Feb 4 '10 at 1:11

Bandwidth will by far be the limiting factor.

Here is a useful article comparing the top 4 unix MTA's of which, all 4 offer excellent performance.

I've tried all 3 of them except exim. My personal favorite is Postfix because it's simple to configure and doesn't add a lot of overhead to the machine.

EDIT: qmail seems to have fallen out of favour in recent times.
EDIT: the article I have given is 4 years old.

Here is something more recent.

Comparison of mail servers.

share|improve this answer