High Availability Incoming Email in SharePoint 2013 – a bug!

The December 2013 CU for SharePoint foundation cures a bug (or was it a feature???) that’s hampered a few 2013 deployments that we’ve recently been working on. I think it’s worthwhile blogging this – as it has potential to hit a fair few people until the patch gets rolled up in to an official service pack and applied to farms. (Aside – I’m still seeing SP2010 RM farms out there in production environments – shudder)

With SharePoint 2013 pre December 2013 Cumulative Update, what we’d see is that email was only picked up by one member of the farm no matter on how many members we’d start the incoming mail service on. Everything looked rosy, the service was listed as started, yet it just doesn’t do anything, email would stick in the pickup folder and never get processed.

In SharePoint 2010 the Incoming Email Service can run on all servers in a farm. This was great, as we could distribute the processing of inbound email to our SharePoint farm across many members giving us resilience against loss of a member in that farm.

We’d typically do this by defining MX records for incoming email in the following fashion:

sharepoint.local MX 10 appserver1.local
sharepoint.local MX 10 appserver2.local

When an SMTP service attempted to route an email in to our SharePoint farm it could use either of the server, they had equal priority, and if one wasn’t responding it would try the other. This is exactly the functionality which we wanted – job done.

However, as discussed earlier, when we started to deploy 2013 farms, the incoming email service would only ever work on one server – the job was locked exclusively to one server in the farm. This means that the incoming email flow has the possibility of introducing single points of failure in to an environment without adding a fair bit of extra complexity in to the solution.

Fortunately Microsoft have, in the December 2013 SharePoint 2013 Foundation Cumulative Update provided published a fix for this behaviour:

When more than one front-end server is set up to process incoming email messages on a SharePoint Server 2013 farm, only one of the servers can process email messages and cannot fail over to any other server.

We’re now rolling this out to our clients who are affected by this in order that their inbound SharePoint email is resilient.

Leave a Reply