Maximum Recipients Per Message and Exceptions

While this is documented very well on TechNet, it sometimes takes a some time to find and memory usually fails us when the question of precedence comes up. I figured documenting it here would help some readers.

The classic question of how to handle message size limits comes up very often and ever changing technology in pursuit of improvement never stays the same. This adds to the confusion of understanding the limits and the way they are applied across the organization. Also, it becomes challenging when you need to provide an exception.

Consider this example:

You have Exchange 2010 servers coexisting with Exchange 2003 servers. You have the Maximum Recipient per message limit set to 5000 in Global Limits and it is set to 2500 in Organizational Limits.

A user comes up to you and presents a business need that requires him to be able to send a message to 3000 company employees at once.

Now this is an interesting scenario. First of all, how can you have two different limits for the same parameter in the same Exchange organization? How can Exchange 2003 allow different limits than 2010? The answer is in where it is stored in Active Directory.

Exchange 2003 uses “Global Limits”. The configuration for maximum recipients per message is stored in msExchRecipLimit attribute. Exchange 2007 introduced the term “Organizational Limits”. Since then, the same maximum recipients per message limit configuration is stored in MaxRecipientEnvelopeLimit attribute. This caused limits to conflict if configured separately. Until Exchange 2007 SP1, the only way to correct that was to change Global Limits from Exchange System Manager (Exchange 2003) to match Organizational Limits set using Exchange 2007 management tools. Exchange 2007 SP1 introduced a unified method of changing the limits. If you use Exchange 2007 tools to set organizational limits, the cmdlets will also update Global limits to match the organizational limits being set.

If I haven’t lost you already, going back to our scenario, now we know the limits are different. We also know what our user needs, but we don’t know where the user mailbox exists. Now why would that matter?

That’s because Exchange 2010 handles messages differently than Exchange 2003. It is described in detail in “Understanding Message Size Limits” on TechNet. In brief, Exchange 2003 treats each member of an expanded distribution list as one recipient. Exchange 2010 treats a distribution group as one recipient. This change was implemented to avoid the partial message delivery scenarios that may occur in Exchange 2003.

Now that we are armed with even more information, what can we tell our user?

If his mailbox happens to be on an Exchange 2003 server, you are looking at limit of 5000 recipients per envelope. This also includes members of expanded distribution groups that may be on the email recipients list. This should be enough to meet user’s requirements.

If, however, his mailbox is on Exchange 2010, your organizational limits are in effect, which happens to be less than user requirements, even if you count each Distribution Group as single recipient. On top of that, Exchange 2010 also implements Connector Limits, Server Limits and User Limits. Because we’re questioning maximum recipients, if the user is sending email through Outlook, Connector Limits won’t apply, and neither will Server Limits. If the user is sending email through an application that uses Receive Connector on Exchange 2010 Hub Transport servers, Connector Limits will apply. If the user is sending email using an application that uses the pickup directory on the Hub Transport servers, Server Limits will apply.

So how do you know which one will take effect in the end? Well, that is explained in “Understanding Message Size Limits” as well. But I will spell it out here in brief. As a message enters the Exchange 2010 environment, it gets evaluated at every stage of message processing. Depending on how it enters the environment, it will be affected by applicable limits as I explained above. If Connector Limits are in effect and are more restrictive than your Organizational Limits, they will take effect.

So… Will your user be able to successfully send an email to 3000 recipients ever? Or you will tell him to break up his message into smaller chunks?

Well, you are in luck. There is one exception to the “most restrictive” approach as spelled out in the message size limits article. And that is (drumroll please) per user configuration! If you were to set the user’s mailbox properties to a limit that meets their needs, you will make that user happy. I’m not saying that would always be a good thing for your environment or not, but only you can judge that!

And if your head hurts, I’ve done my job right. Winking smile