Amazon announced in January their new Simple Email Service. This was timely as the project I'm working on at the moment needs to send out quite a lot of transactional emails. A few days later MailChimp announced they'd created a layer on top of the Amazon service that gave some extra and very useful reporting features.
We were sending emails from our webserver's mail server. This was fine most of the time, but even in testing we were finding that a few emails were getting turned down as spam by people’s email clients. Using an email sending service was something we were considering to help us fix this problem. We'd looked at PostMark, which is quite a bit shinier than Amazon SES. However the big attraction to Amazon SES is the price. At the time of writeing seding 1,000 emails through PostMark costs $1.50, but to send the same number through Amazon costs $0.15. This is ten times cheaper.
To help me use MailChimp's version of Amazon SES inside my .NET MVC 3 project I created a wrapper for the API. For this I used Hammock, which is an excellent library that helps with building wrappers in .NET for REST based web services. I’ve released the code as an Open Source project on CodePlex. It uses .NET 4, but it doesn’t use too many .NET 4 features and would be quite easy to back port. You can download the code here:
We are currently struggling with sending limits though. To prevent spam, Amazon use a limit based system that slowly grows with usage. They've currently restricted us to 200 emails a day. This was supposed to increase after we were improved for production, but even though we're approved this hasn't happened yet and is making real live user testing quite difficult. We were also hoping we’d be able to get back better stats about which email addresses had bounced. However the API will only tell you how many emails have bounced. This extra feature would be a huge improvement and very helpful to us.
We’re currently waiting for Amazon to get back to us about increasing our sending limit. So hopefully they’ll be able to sort that out for us.