Does anyone here recommend building your own email system other than it being more private than hosted email? Are there any benefits (outside of privacy) to putting up your own email server?
1. I can choose my domain (although nowadays that's not a problem - it was when I first started).
2. I can tweak spam and anti-virus filtering.
3. I can view the logs if I think something is wrong.
4. I can be as (in)tolerant of other mail servers as I want (I've noticed that Google is a bit lax in the rules it enforces with regards to rejecting mail).
5. I don't trust Google or other providers not to mine my email, or to back it up.
... and on a -somewhat- related note: Does anyone here recommend 'premium' e-mail hosting, such as Rackspace E-mail? (http://www.rackspace.com/apps/email_hosting/rackspace_email/). What are the benefits of such services? I am trying to understand the benefits of these premium e-mail services to a postfix on a self-managed VPS.
One major advantage of premium hosting services (and other SaaS providers such as SendGrid) is that for outgoing mail, your mail will be delivered and not marked as spam/blacklisted/dropped silently.
Because of the low volume of outgoing mail from a VPS, it's very easy to end up on blacklists.
Wait, how does sending little emails can get your server blacklisted? Is it because they don't care about the small guy, or is there some technical reason ?
It's really about how much a false positive affects your IP's reputation.
When you are sending out a lot of email, recipients see a volume of mail. If a few of these get marked as spam, no big deal, you sent out 5,000 mails in an hour, of which 2-3 were marked as a false positive.
If you are running your own VPS you are sending out comparatively fewer mails so the decision on whether you are a spammer or not is made with a lot less information -- and most recipients will assume you are a spammer immediately.
It's mostly because you're not yet proved to be NOT spam. When you start a new mail server on an IP there's zero diference between a legimate email server and a spamhost. Your IP will not be in spamhaus and other blacklists, but you might get stuck in McAffee and other more enterpricey filters, especially if some other IPs in your subnet are known to send spam.
If you only need a small handful of email addresses, often the hosted service can provide those for a lower (or similar) monthly cost to that of a VPS (assuming you're dedicating the VPS to just email).
The blacklist issues others have pointed out are real. Some IPs are on blacklists and you will not be able to get them removed without an outrageous amount of leg work. Most of the premium email hosting places make sure they're not on those blacklists.
Personally, I use FastMail.fm. I've gotten the impression that if TSHTF, they'll fix it fast. The price is reasonable. They're not Google. When I get a website up that can't be served via static pages, I'll be going the VPS or other cloud service, but for email, I'm much happier leaving that to a premium provider.
I was on the wrong end of blacklisting situation and it was extremely frustrating. First, you don't know that your customers aren't receiving the emails. Second, you have very little clout in getting things cleared up. Third, it's just a huge PITA that wastes a lot of time.
I'm running a very small operation, but one bad instance of my IP being blacklisted prompted me to shell out the extra $3 /months to have Rackspace send my emails.
I have used pobox.com for years for email. They have excellent spam filtering. They also have excellent remediation for the few false positives I've had over the years. I can also only remember a couple of times they've actually been down that I have noticed, and I access my email fairly constantly (at home and via my phone)
Sendgrid's Event API (http://docs.sendgrid.com/documentation/api/event-api/) does something similar to this. Their mail servers act as a gateway to allow your app server to both send and recieve email over HTTP. I've used it at work as part of a not-yet-released feature of our product.
Real men write their own email servers ... kidding ;P
I think most people want the parse api. That is doing something when an email received. We were going to use that and the event api ourselves but I ended up writing my own custom email server with subethasmtp (in hindsight the lost opportunity cost was probably not worth it.)
If you want to be part of the e-mail pipeline, your application should use SMTP for both sending and recieving.
Use a spam service such as spamhero.com or google postini as the MX for your domain so you do not have to do spam filtering yourself, have the spam filter service deliver the mail to your application (over SMTP). Your app can do whatever processing it needs to do, and then deliver the mail to the MX server of the ISP you're using to host your mail.
This way you can use your app without any changes as a local smtp filter as well (e.g. if you're using something like amavis).
I'm not sure I agree. Integrating into an existing server, such as Exim/Postfix will give the security benefits with a much lower latency and lower bandwidth costs.
I wrote an email server to do this but I highly recommend instead of using a RESTful POST you consider using a message bus like RabbitMQ. That is what we do. We have our custom email server push it to a Rabbit queue and then our app picks it up. That way if you shutdown the app you won't loose any emails.
Sure there are benefits with having your own email system versus a hosted solution (ie. you have the data on your server(s)), but it comes with maintenance headaches too.
We recently switched over to Atmail (http://atmail.com/) after years of running Cyrus+Postfix (with various anti-spam tools). Atmail is kinda the best of two worlds -- you have control over your data, but the software is easy to maintain. Under the hood, Atmail is using standard Unix/Linux components (dovecot, exim, spamassasin etc), but makes it easy to maintain.
For a few other companies I'm involved with, I've deployed Google Apps, just because it's dead simple and gives you no headache.
Earlier I had used dovecot+postfix for my personal email system. The advantages are that if you roll your own you can do whatever the heck you want.
Huge disadvantage (other than the fact that power, static IP etc are all your problem) is that a LOT of email providers will think you are spam.
Now I use SES for outgoing (for my app) and Gmail for incoming. Works a lot better. I remember reading that Gmail lets you write filters and what not as well, but I have not examined it in detail. I'm sure its do-able.