Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

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

This question already has an answer here:

I am wanting advice in securing an email server for large quantities of outbound emails daily. Would like recommendations on hardware and software, plus cost estimates. WOuld like system to grow with volume. Starting out at 30,000 emails per day, and then growing from there. Want to make sure my business plan can afford this.

share|improve this question

marked as duplicate by Michael Hampton Dec 18 '15 at 1:18

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Although you're interested in high volumes of outbound email you also want to consider handling the bounce-backs, unsubscribes and out of office replies etc. If you're mailing this volume you want to set up a robust process to remove the bounces else Yahoo/Hotmail/etc. will start penalising delivery of your emails. – Dan Jun 28 '09 at 21:47
political views aside - take a look at "Database We Can Believe In: Stories from the Front Lines and Server Rooms of Barack Obama's Online Presidential Campaign", especially starting from 15m15s - they've been sending quite a lot of mails.. millions per hour. – pQd Jun 28 '09 at 22:09

We do ten times this amount on four very old servers, probably four years old, running Ubuntu Linux, exim and a custom java delivery and POP3 program. You could probably get a dedicated server option for around 100-150USD that would be able to provide the performance you're looking for. This would require you to have some knowledge of configuring Linux, or to hire someone who does.

share|improve this answer

This depends quite a lot on what you are exactly going to do with it:

  • How big are these e-mails (directly related to available bandwidth, don't worry even the sluggished PC will be able to fill a 100mbit pipe)
  • Do you need a lot of text processing to 'compose' these e-mails, if it is querying a database for all the fields it is more likely that the database connection is going to be the bottleneck.

I once wrote a simple Python program for windows that directly delivers messages to the MX server of the particular e-mail address. It run on a VMWare instance on my Dell D820 laptop with win2003 having 512MB memory and it pushed out about 3 mails per second, though that was single threaded and most of that was waiting for the remote server. I figure that I could have run about 20 of these programs simultaneously before getting in any memory/cpu problems.

So about 60 mails per second, which is more than 200.000 per hour.

share|improve this answer

You say 30,000 per day, but the interesting question is more how many per second or minute? And how good are your addresses?

30,000 spread evenly across a day is one email every 2.88 seconds, virtually nothing for any old system you can make into a server; even if you do it all single-threaded. Spread into two batches expected to be delivered in half an hour, you're talking about slightly over 8 emails per second; maybe a bit hard for that old 386 in the closet to manage, but doable with the right software on virtually any box bought in the last 5 years. Expect to deliver 99% of that 30,000 within a 1 minute window, and you're talking 500 per second; something a bit hard to do.

The most important spec will be memory. Email deliveries take no real computational effort, the main thing is that you'll want to have a lot of open outgoing connections to different servers, and the way to do that is multiple processes or threads, which means more RAM.

If an address gives you a temporary error, do you want to save it out to a queue and try it again later? Some people are set up so that that's the only way to get email to them.

Really, for those volumes, the hard part is dealing with bounces, unsubscribes and spam complaints. (and if you don't handle those properly, you'll be flagged as a spammer in the various databases and won't get your email through)

For that matter, is your business plan to spam? Where did those 30,000 email addresses come from?

share|improve this answer

To more directly answer some of the technical aspects:

  • Setup a Linux/Unix box with a mail server like Postfix or Exim
  • Have your application send all mail to this box (don't try to do the queuing yourself).
  • You may want to do host masquerade (have all emails appear to come from the domain)
  • Set your reply-to (or from headers) to point to your real mail server (so that you can see the bounce messages and other issues).

The cost of the hardware depends on where you are going to put it (at your office, at a Colo, rent a VPS at a hosting company).

share|improve this answer