Mailinator Blog
mailinator.blogspot.com · Company blog · on HN since 2007
Paul Tyma, creator of the Mailinator disposable email service, writes about its architecture, performance tuning and server engineering.
What HN saysCommenters call the blog seriously interesting hacker reading, citing the post on compressing email by 90% and its views on threads versus callbacks.
64HN people shared it
36linked it in comments
58stories submitted
2.1Kstory points
2 years agolast shared
2007people per year2026
Most-shared posts
- 1A Beautiful Race Condition10 people · 96 points · first shared 2009 · 20 comments on HN
- 2How to get gmail.com banned (2011)9 people · 351 points · first shared 2011 · 60 comments on HN
- 3The Architecture of Mailinator (2007)5 people · 231 points · first shared 2007 · 39 comments on HN
- 4Kill myth please nio is not faster than5 people · first shared 2008
- 5Your own private mailinator3 people · first shared 2012
- 6How Mailinator compresses its email stream by 90%2 people · 424 points · first shared 2012 · 69 comments on HN
- 7How I sped up my server by 6x (with 1 linux cmd)2 people · 196 points · first shared 2010 · 46 comments on HN
- 8Dear World, email addresses are not identity2 people · 48 points · first shared 2008 · 26 comments on HN
- 9Mailinator Launches Private Domains2 people · 36 points · first shared 2014 · 4 comments on HN
- 10Introducing the Mailinator Real-Time Inbox2 people · 15 points · first shared 2017 · 1 comments on HN
- 11Mailinator and the Recent Google Docs Phishing Attack2 people · 14 points · first shared 2017 · 6 comments on HN
- 12I Further Predict the Death of your Web Framework2 people · 8 points · first shared 2012 · discussion on HN
- 13Benchmarking Talkinator2 people · 6 points · first shared 2008 · discussion on HN
- 14Mailinator for Scripts Testing2 people · 5 points · first shared 2009 · discussion on HN
- 15The Programming Leap to Multithreading2 people · 3 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
zinxq · 2013-08-01
Fulltime, Palo Alto - funded Series A
http://www.refresh.io
paul at refresh.io
Title: "Rather Impressive Java Developer"
Our current dev team is pretty awesome and we're looking to add to it. Currently we have a few PhD's, few ex-googler's, some tech book authors, couple of ex-linkedin, ex-microsofties, and stanfords, and a bunch of startup vets like Trulia and dealer.com. Heck we even have the guy who wrote the Java testing framework TestNG ( http://www.testng.org ) and the guy who wrote Mailinator ( http://mailinator.blogspot.com ). And we're only up to 7 people. But we want an 8th and maybe a 9th.
Job Description:
Someone we want to work with. Someone who will make us smarter and better and, in return, someone we can make smarter and better too. Someone who will help us make our company and its products great.
Our technology includes:
Java. Thousands of threads (Mailinator guy keeps adding more, TestNG guy keeps removing them). Tons of data, tremendous data analysis, fuzzy logic, machine learning, natural language processing. We use Mongo and we're having no problems with it - because we're careful. We treat every superfluous database access and every unnecessary network call like its a small insult to our users. And gosh darn it, we love our users.
Simply, we are building a product that fetches and analyzes massive amounts of data to improve our user's lives (see the website for a more specific description, or better yet, email me)
Job Requirements:
You…
icebraining · 2013-08-09
Apparently it's just one part of a bigger plan, that includes adding paid tiers: http://mailinator.blogspot.pt/2013/05/mailinator-is-for-humans.html
Personally, I just have to thank the creator for a great service that I used all the time (until I got my own domain). And for his technical blog posts: http://mailinator.blogspot.pt/2007/01/architecture-of-mailinator.html
boyter · 2013-08-09
The best thing about mailinator other then the service is the blog posts. There is some seriously interesting hacker reading in there such as,
http://mailinator.blogspot.com.au/2012/02/how-mailinator-compresses-em…
http://mailinator.blogspot.com.au/2011/05/notes-from-programming-leap-…
http://mailinator.blogspot.com.au/2010/02/how-i-sped-up-my-server-by-f…
http://mailinator.blogspot.com.au/2007/01/architecture-of-mailinator.h…
I think most have hit the front page of HN before but its worth including here for those who have not read them.
thejo · 2010-01-11
> Asynchronous, callback-based code is frequently more difficult to write, harder to reason with, more inflexible, and buggier than similar synchronous code.
That is an excellent point that is usually ignored. Thread per request is much easier to understand and work with. Of course, thread per request is simply not a good choice in cases like a server with support for web sockets, but it is good enough in many cases. My experience has mainly been with Java (NIO vs. simple threads and Executors). Paul Tyma has made a more convincing argument than me about this -
http://mailinator.blogspot.com/2008/02/kill-myth-please-nio-is-not-fas…
http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-server…
http://www.theserverside.com/discussions/thread.tss?thread_id=26700
JoachimSchipper · 2011-09-22
Mailinator has a blog, at http://mailinator.blogspot.com - you should definitely read everything on there. Some things I recall reading:
- Mailinator is designed and written from the ground up to be efficient by someone who seems pretty good (Paul Tyma; on the implementation side, it's completely custom SMTP-to-web software keeping e-mail in compressed form in memory; on the design side, it "sheds load" far more aggressively than mail servers that are intended to be reliable, necessary for the constant DoS attacks);
- Mailinator has lots of imitators, but they tend to find out that the cost of running servers is higher than the ad revenue (see "efficient and cheap", mailinator processes a ridiculous amount of e-mail and recently added its second server because getting that much bandwidth to a single server was more expensive);
- As I understand, this is a hobby for Paul; he's not exactly getting rich (well, not from Mailinator anyway; he's on LinkedIn if you want an idea.)
I don't mean to discourage you, it sounds like a nice project. Just don't expect to get rich off it, or to be done tomorrow...
getsat · 2011-03-08
Preforked and threaded blocking IO consumes far more resources than event-driven non-blocking network IO. Process/thread stacks consume a significant amount of memory. This is why nginx ruins Apache at almost anything at scale (especially reverse proxying). Apache falls over while consuming grandiose amounts of memory in the low millions of connections per day while nginx can easily handle 10mm connections per day on a single core machine with 256mb ram. It's ridiculous.
On the other hand, for long-lived connections, you're better off using blocking IO since it's more efficient. Most web traffic is not long-lived, though. See Paul's interesting article on NIO vs IO performance:
http://mailinator.blogspot.com/2008/02/kill-myth-please-nio-is-not-fas…
http://www.mailinator.com/tymaPaulMultithreaded.pdf
And don't forget about Slowloris. If you see your competition using Apache, you really don't need to worry. :)
Disclaimer: I have nothing personal against Apache and used it for six years or so. I've just moved on to better software. If it works for you, that's great.
scottlamb · 2025-03-01
There's a dead comment replying to yours with this link: https://mailinator.blogspot.com/2009/06/beautiful-race-condition.html
...which I don't think I've ever seen before, but nicely explains the problem I saw, and coincidentally is from the same year!
pbh101 · 2025-03-01
It can also break if the read implementation has mutable side effects, e.g. rebalancing. Java HashMap used to have this causing an infinite loop. I haven’t looked recently but my guess is it still does.
https://mailinator.blogspot.com/2009/06/beautiful-race-condition.html
‘Not thread safe’ really means ‘not thread safe’.
sova · 2018-06-24
Looks like he did: http://mailinator.blogspot.com/2012/02/how-mailinator-compresses-email…
hfern · 2018-01-18
Mailinator does the same thing -- http://mailinator.blogspot.com/2011/05/how-to-get-gmailcom-banned-not-…
I don't see anything wrong with it.
douglasfshearer · 2018-01-09
Spam receiving services seem to provide fertile ground for heavy optimisation of storage.
See also Mailinator. [0]
[0] http://mailinator.blogspot.ae/2007/01/architecture-of-mailinator.html
mwcampbell · 2016-05-16
The rise of SSDs has changed the degree to which web apps are I/O bound. So the conventional wisdom from several years ago doesn't necessarily still hold. Check out this blog post from the developer of Mailinator:
http://mailinator.blogspot.com/2012/08/your-bottleneck-is-dead-long-li…
jks · 2015-09-27
Here's how that might happen: http://mailinator.blogspot.com/2011/05/how-to-get-gmailcom-banned-not-…
8ig8 · 2015-08-04
One way to get around a domain blacklist is to point your own domain to Mailinator. Heck, since last year you can even get your own private Mailinator...
http://mailinator.blogspot.com/2014/10/mailinator-launches-private-dom…
gus_massa · 2015-08-02
Perhaps they can use processor affinity to put each user in one core ( https://en.wikipedia.org/wiki/Processor_affinity ).
Sometimes this is useful to make single thread programs fasters, because it avoids the necessity to "transfer" the cache form the old core to the new core. ( http://mailinator.blogspot.com.ar/2010/02/how-i-sped-up-my-server-by-f… the article is old (2010) but interesting)
I never tried this in a situation like yours, so I don't know if this is useful in your case.
aidos · 2015-03-26
Also, for us geeks, mailinator are awesome on a technical level.
http://mailinator.blogspot.co.uk/2012/02/how-mailinator-compresses-ema…
ozh · 2014-10-06
It's trivial to setup your own mailinator with a custom domain or subdomain -- http://mailinator.blogspot.fr/2008/01/your-own-private-mailinator.html
gee_totes · 2014-08-26
What happens if your competitors realize you are using the service and devise some way to trick MontorBook into reporting the wrong prices?
[Edit: related link, which was the inspiration for my question: http://mailinator.blogspot.com/2011/05/how-to-get-gmailcom-banned-not-…
aaronbrethorst · 2013-08-09
I think this would be considered 'by design'.
http://mailinator.blogspot.pt/2013/05/mailinator-is-for-humans.html
benmanns · 2013-02-22
You can also use Mailinator[0] and their many other domains for throwaway email addresses. In fact, you can point your MX records to mail.mailinator.com for a custom domain without running a VPS.[1]
[0] http://www.mailinator.com/
[1] http://mailinator.blogspot.com/2008/01/your-own-private-mailinator.htm…
baddox · 2012-12-26
Mailinator also has a neat one-way alias, so if you want to use [email protected] you can have email sent to an alias mailinator generates like [email protected]. That way, the people (spammers) that get the alias can't even check your inbox, which is still under MyName. http://mailinator.blogspot.com/2008/03/introducing-alternate-inbox-nam…
AgentConundrum · 2012-12-26
You can't get a full list of them on mailinator.com, since it makes it easy for a misguided website administrator to just ban the whole list.
Instead, the site will randomly show one of the alternate domains on every page load. At one point, it would even give 'gmail.com' and other legitimate domains as the alternate if you tried to scrape them too quickly (or rather, they hypothetically-yet-definitely-didn't-do that).[1]
Today, the alternate domains are shown as an image[2], and even that isn't a complete list, since other people can simply redirect mail incoming to their domains to mailinator.com. Mailinator explicitly condones this.[3]
[1] http://mailinator.blogspot.ca/2011/05/how-to-get-gmailcom-banned-not-t…
[2] http://www.mailinator.com/get_alt_domain
[3] http://mailinator.blogspot.ca/2007/10/new-mailinator-alternate-domains… (end of second paragraph)
samuel · 2012-12-09
Yes, it does. Read this: http://mailinator.blogspot.com.es/2010/02/how-i-sped-up-my-server-by-f…
which it's a deeper take on the subject.
cstuder · 2012-09-21
You know about the Mailinator second email address to prevent exactly this problem? (http://mailinator.blogspot.ch/2008/03/introducing-alternate-inbox-name…
smanek · 2012-03-19
Incidentally, I've seen unsynchronized access to a Java HashMap cause an infinite loop on .get()s which is (allowably) undefined behavior, and pretty unexpected (see: http://mailinator.blogspot.com/2009/06/beautiful-race-condition.html)
willvarfar · 2012-02-23
Paul is the author of these slides: http://mailinator.blogspot.com/2011/05/notes-from-programming-leap-to.…
(Its in the blog I told you to go read)
So, think he understands how to do it right?
Ecio78 · 2012-02-21
According to this[0] you can also use your own domain and send all the mails to mailinator. I dont think those form validation software would so clever to check your MX records (or their alternate domain name du jour would not work)
[0] http://mailinator.blogspot.com/2008/01/your-own-private-mailinator.htm…
papaf · 2011-07-20
Creating 1 thread per connection is for unskilled programmers.
Its not as clear cut or obvious as it first seems:
http://mailinator.blogspot.com/2008/02/kill-myth-please-nio-is-not-fas…
Edit: The original presentation is more interesting:
http://www.mailinator.com/tymaPaulMultithreaded.pdf
zck · 2010-06-29
The benefit this has over mailinator is that the email ends up in your regular email client, and can be managed the same way. It won't be deleted unless you delete it, and no one else can come across it (mailinator has intoduced something to combat this: http://mailinator.blogspot.com/2008/03/introducing-alternate-inbox-nam…