How we send 22k emails every hour
jitbit.com
jitbit.com
> Here's a cute completely irrelevant story, feel free to skip. The phrase "Because Australians!" has actually become an inside joke/catchphrase in our company. See, Aussies and Kiwis (New Zealanders) wake up before everyone else (even before Japan). Basically Australians are the reason SaaS businesses don't have an outage/maintenance window. And a couple of times when we were about to put a server down for maintenance on a late Sunday evening (EU time), someone would shout "Wait! Don't do that!" - "What... Why?" - "Because Australians!" So after 4 or 5 times this phrase is now used as an ultimate "42" answer why everything has to be up and running 24/7. I even have a tiny map of Australia in my office. I (nor anyone from the team) have never been to Australia or New Zealand, but hey, we're always thinking about you mates [wink]
https://www.timeanddate.com/worldclock/meetingtime.html?iso=...
I built a custom email solution for a small business similar to the one presented in the article, with a bespoke newsletter creation/mailing list management/engagement reporting platform on top of it. It handles far more than 22K emails per hour, which is a trivial volume for even very modest modern hardware.
However, I do agree with the article that building a system like this can be highly cost-effective. At one point, my aforementioned client was spending nearly $75K per year to outsource this. They've been using the system I built for more than half a decade now, with the only fixed monthly costs being a few virtual private servers.
Every time an engineer says this, somewhere a puppy dies.
Especially with an email service, keeping up with the spammers, scammers, blacklists, AV false positives, delivery failures at large companies, etc. cost far more per year than building the thing.
Operations is never free.
> The system’s back end Cyrus message store comprises 16 single-CPU PCs, each with 3GB RAM and 7 72GB SCSI disks providing 350GB of available storage after RAID and filesystem overheads. The front end redirector ppsw is 6 dual-CPU PCs each with 1GB RAM and 4 18GB SCSI disks providing 50GB of available storage. The webmail system is another PC with the same configuration. The terminal-based Menu System is still running on the old Hermes systems at the moment, until migration to the new system is complete. It will then move onto a PC with plenty of RAM and CPU. The backup system is attached to a disk shelf containing 16 250GB SATA disks providing 3.2TB of usable storage, and a tape robot containing a 17 cartridge magazine and two LTO drives
These days each of those would be a "small" VPS.
Edit: just found an even better example, https://github.com/Exim/exim/wiki/Q1002 "On a PII 400 with 128M of RAM running Linux 2.2.5, I have achieved 36656 messages per hour (outgoing unique messages and recipients)"
Wish I had saved some of the printouts of the billing monitor when it was running (the monthly map reduce billing system) as it listed the DASD and memory for each member of the cluster.
SMTP, relays, MX-records, SPF verification, DKIM signatures, spam filtering, reverse-DNS, blacklisting, "Internet Message Format", throttling, MIME-encoding, email-antiviruses, bounces, headers, log-parsing, rate-limiting, greylisting, RFC standards (and that no one follows them)... And of course - about IP address reputation (more on that later).
Are there any open source tools to tackle some of these? Given the maturity of email marketing I would expect some pretty robust free tooling available.
There must be an inflection point where it becomes more economical to host your own, but I doubt 22k an hour is that point? Maybe it is.
o SMTP = postfix/exim/sendmail (hint don't use the last two)
o dkim, spf & reverse-dns are just DNS records. Spf is a list of IPs that your domain "owns", dkim is a hash that proves you own the originating server.
o Log parsing is standard log interrogation stuff. You are better off writing a custom metrics exporter that talks to the queue than parse logs routinely.
o Greylisting is a configuration option for email relays where they reject the first attempt of unknown servers attempting to deliver mail. nothing more to it. (https://www.greylisting.org/implementations/postfix.php)
o rate-limiting is again a config option: https://www.vooservers.com/technical-blog/rate-limit-outboun...
o spam filtering: https://docs.iredmail.org/enable.dnsbl.html is a good start
I'm a little curious about their reasoning for buy-vs-build. They say they "can't afford several thousand a month", but their list of clients includes Adobe, VMWare, GE and many other impressive names. I find it hard to believe that with a list of major enterprise clients, they can't afford several thousand dollars a month?
It seems more plausible that they can indeed afford it, but figured building it in-house would be cheaper and produce more profits. Developer costs in USA run about ~$5-10k/month, and that's assuming you're not trying to compete with companies like Google. Would be curious to hear about the number of dev-weeks they have spent learning all the stuff they mentioned, building it, troubleshooting any issues, and keeping the system running and up-to-date. I'm also curious about the effect building this project has had on their bus factor.
They can probably afford it, but if every piece of your stack needs that kind of money you run out of money fairly quickly.
> Developer costs in USA run about ~$5-10k/month
They are based in the UK.
> Would be curious to hear about the number of dev-weeks they have spent learning all the stuff they mentioned, building it, troubleshooting any issues, and keeping the system running and up-to-date.
It's just an SMTP server, not rocket science.
Well, to be embarrassingly honest... We suck at pricing. We were offering "unlimited" plans to everyone until recently. And the "impressive names" like you mention, well, they mostly pay us around $250 a month - which used to be our "Enterprise" pricing plan with unlimited everything (users, storage, agents etc.)
So I guess the real answer is - we suck at positioning and we suck at marketing. As the result - profits were REALLY low (Lesson learned - don't compete on pricing).
P.S. Couple of years ago I met Thomas from "FE International" at some conference, really experienced guy, who told me "dude, this is crazy, dump the unlimited plan like right now" so we did. So I guess technically we can afford a PaaS now...
1st of all - thanks for being a customer. Just so you know - we are terrified to lose you since we're not VC-backed.
2nd of all - you're totally right. Pricing has to be A/B-tested like crazy. But it's much more exciting to play with a Postfix server in your backyard, aye? Evading the businessy/salesy part for as long as you can #sarcasm
Cost aside, all that time hacking your own ESP takes away from investing in your core business.
+1 on pricing - you provide an awesome service and you should charge what your product is worth. I think it’s natural to start out cheaper to establish yourself but when your margins are so tight you need to hack your own ESP, time to examine pricing :)
Unless you can invest those revenues at some very high rate of return, the annual return on the money you put aside to support future support costs won't pay for much.
e.g. if you put $1699 in the bank and earn 2% interest, that $40 in annual interest might buy you an hour of someone's time to provide support to that client.
Of course, I might be wrong, but I reckon you could offer free support for the first year only, and charge ~20% per year for upgrades and support.
And my point might be totally irrelevant if all your clients go with the SaaS option.
I do the same that the person in the article, sending 20k emails per day with the same setup and same result: it works
Seriously, not to rant or anything, but isn't this "email server 101"?
That sort of depends on how well documented the entire system is, I'd think. And even then, I'm not sure this is quite as good as it sounds.
Presumably this system is going to be humming along smoothly for quite some time. But when something breaks or goes wrong, is it going to be easy to go find the problem and fix it? Probably not. Whoever built it - if they are still with the company - will likely have forgotten a lot of the little details. Even if it's documented well, that documentation needs to be reviewed, understood, and (re)learned.
So yeah, it's pretty low maintenance, sure - until something goes wrong. And it inevitably will.
I'm not saying this is the wrong approach. Thousands of dollars a month for a PaaS is nothing to shake a stick at. So this very well could be a great approach under the circumstances. But there will be hidden costs down the road. It's just a matter of when and how much trouble they cause. (Will it cause your systems to go down for days while a bug is investigated, for example).
for me it was important that every email is delivered (i have 99.9% now)
We moved away from ClamAV because it detected less than a tenth of virus samples we tested in practice. Simple things like EXEs, ISOs, VBAs and JS attachments.
VirusTotal uploads showed the same single digit detection rate for ClamAV.
I thought ClamAV was a better scanner, have things stagnated?
Is that a spam system?
> No, [...] marketing.
Excuse me while I lol.
(It might be completely wanted marketing, just amused me; almost all spam is marketing for something.)
[EDIT] I mean 1% of marketing emails where there's any relationship between the sender and the recipient whatsoever, of course. All others are spam, clearly.
The title should have been "How we send 22000 emails every hour for $9/month"
16 million emails for $9 is actually pretty good.
https://www.digitalocean.com/community/tutorials/why-you-may...
It's nice to see that a small-to-medium-scale mail server is still a possibility in this time of Gmail/Hotmail bans, IP blacklists, and the like.
On that note, I wonder what happens when a scam caller dumps a SIP number and a legitimate business unwittingly picks it up when they open. Now a hundred thousand people have blocked it in the phone and it's blacklisted on several apps.