0

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.

2
  • 2
    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, 2009 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, 2009 at 22:09

4 Answers 4

3

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.

0

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.

0

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?

0

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).