# Set up high Perf SMTP to send @ 5 mails/sec speed



## mehargags (Feb 28, 2015)

I'm working on a project for a salesforce app for a 15 years old portal with a massive user base of around 3 Million subscribers and growing. The App sends our around 10,000 to 30,000 Transactional Mails like daily Birthday mailers, personal evaluations, predictions and other notification & the company sends Mailer campaigns 2-3 times a month to whole user base and want to increase the frequency.

They have been blindly doing it from their 2 Servers, but now want an organized environment with detailed Reporting on Delivery, open and Click Tracking of transactional as well as Campaign mails.

Outsourcing this to an ESP like Mandrill & sendgrid is being considered, however the costs are exorbitant for the client right now, and they have asked me to design and setup something "self hosted". Hence I seek some education in trying out a cost effective solution for the above scenario I have quite a good experience in Windows, and fairly good at Exim on Debian so I’m open to going either way… not biased to OS choices.

    I’m also fully aware of all details for a setting up a functional mail server, like SPF, DKIM, rDNS, Forward rDNS A record etc.

Cost of hosting a VPS (win or linux) is fairly cheap nowadays, and since the mailing server will not have any other services like Web, DB, incoming Mails, etc., I guess I’ll be good to go with a 2GB KVM SSD VPS. Please suggest!

Now the question I’m facing myself is, that all in all I will need a very efficient SMTP system to be able to send out 3 to 5 mails per second… and even more if they demand. I’ve been reading a lot and want to know if Exim is capable of sending mails @5mails/sec so that I can achieve threshold of 15000 mails and hour. I understand that I’d need to pause and delay in between to avoid Gmail/Hotmail/Yahoo banning me for SMTP flood.

I’m a bit perplexed and Anxious as I’ve not dealt with such huge mailing requirement uptill now so please bear with my questions to follow, I certainly seek education and information in meeting this challenge efficiently.

    Even at 5mails/sec speed it will take me 2-3 days to cover the complete mailing list. Can I open additional mail queues within Exim/Windows SMTP to parallel send mails from 4-5 or more different mail queues?

    If not, can I setup 2-3-4 separate VPS instances, and distribute mailing list into respective chunks (say alphabetically ordered) and make the VPSs send mails in parallel.

I’m wondering what MTA system/software are big ESP services like Mandrill, Sendgrid, constant Contact using. I’m sure they are home baked speciality but still there must be some starting point to learn.

That said I also need recommendation what software to use to manage my mailing list, Newsletter and Sending capabilities. Most important aspect is managing bounces (both hard/Soft) and one click unsubscribe for users. Again I’m open to get PHP/python web based software or even use a windows desktop app ( I can use remote Desktop to windows VPS).

Thanks for reading up this long… To summarise, I need suggestions to setup a high speed Mail Sending system @5mails/sec and also manage my mailing campaigns, list, unsubscribe features through a good software.


----------



## Chatahooch (Feb 28, 2015)

Why not use phplist? It will take a little tweeking possible to get the amount per hour that you want but it will handle it quite easily. This is for Linux based I cannot comment on how IIS and PHPlist play together.

I would consider upping your RAM requirement up to 4GB also for that amount of sends per hour. of course depending on what delivery system you decide to use. Yes exim can handle that.

For Windows I cannot comment on that, I am sure somebody else here can though.


----------



## mehargags (Mar 1, 2015)

Yes I'm considering PHPlist on the top of my list!

Can you also recommend good hosting provider who will allow mass mailing ? ofcourse in a completely responsible and controlled enviroment where any SPAM complaints will be dealt with very quickly.


----------



## dcdan (Mar 1, 2015)

30000 x 3 = 90000 emails * 0.0002 = $18/mo with Mandrill (worst case, not including free 12000 sends per mo).

Setting your own server and making sure emails are constantly getting into user's inboxes takes a lot of effort, I am not sure if it makes sense to save a few bucks a month and spend that much effort...

If you are sending a few million emails per month only then it starts making sense.


----------



## clarity (Mar 2, 2015)

The math above is off.


The app sends 3 million emails twice a month. It also sends the 30,000 per day for almost another million emails. This totals around 7 million emails a month.


Should be around $1,400 per month using the same cost per email above.


----------



## fixidixi (Mar 2, 2015)

@clarity:

I havent done anything like this at this scale but my ideas:


use a native app for sending those mails. php& performance. well. no.
create a separate basic webapp for
handling the sub/unsub requests
management
abuse handle
reporting
blacklist checks
[*]create task queues and multiple pub/sub workers which handle the actual mail delivery


----------

