Message size limits are an important mechanism to control mailbox sizes, guarantee service availability, and protect from potential DoS attacks. Another commonly asked question is about message size limits and the inability to send messages that are apparently within the maximum sizes configured. Let’s take a look at the message size settings in different places in Exchange 2010 and Exchange 2007.

Organizational limits

The organizational send and receive size limits apply to all Exchange servers in the Organization. The default is 10MB.

You can modify the organizational message size limits using the Set-TransportConfig cmdlet from the Exchange shell:

Set-TransportConfig -MaxReceiveSize 40MB -MaxSendSize 40MB

In Exchange 2007 SP1 and later, you can also set the organizational message size limits using the EMC by going to Organization Configuration | Hub Transport | Global Settings tab | Transport Settings | properties | General tab.

Figure 1: Setting the organizational message size limits from the Global Settings tab in the EMC in Exchange 2007 SP1 and later

Receive Connector limit

Unlike Exchange SMTP Virtual Servers in Exchange Server 2003/2000, Exchange 2007’s Receive Connectors are only used to receive messages. You can use different Receive Connectors with different maximum message size limits. For example, a Receive Connector for inbound Internet mail may have lower message size limits, but you may want to allow larger messages on Receive Connector for authenticated senders, partners or scanners and multi-function devices that can send large scanned images or PDF files.

What’s a Unique Binding for a Receive Connector?

Exchange 2003/2000’s SMTP Virtual Servers consider a unique combination of an IP address + TCP port number as a unique binding, and don’t allow another SMTP Virtual Server to be bound to the same IP address + port combination. Exchange 2010/2007’s more evolved view of a unique binding is a combination of IP address + port + RemoteIPRanges.

What this means:

You don’t need another IP address to create a separate Receive Connector with different settings.

You don’t have to use a non-default port when using the same IP address to create a separate Receive Connector.

You can create a Receive Connector using the same IP address + port number, but using different RemoteIPRanges to specify the remote hosts that can connect to it. For example, you can create a Receive Connector for a set of remote hosts and specify a different message size to allow those hosts to send larger messages, or to restrict them to smaller messages.

This is perhaps one of the most misunderstood part of message size limits, and therefore a frequently asked question: when you specify individual message size limits for a recipient, does it override other message size limits in your Exchange organization?

In a nutshell, setting higher message size limits on an Exchange recipient bypasses the maximum message sizes in the Exchange Organization configuration, but only for internal messages, not for messages sent to or received from the Internet and other unauthenticated sources.

Remember, for a message to be delivered successfully, the message size must be within the max message size limits applicable to both – the sender and the recipient. Because the identity of unauthenticated or anonymous senders and recipients can’t be established (because… they’re unauthenticated!), the organizational limit applies.

Active Directory SiteLink limit

In Exchange Server 2007 SP1, you can also set maximum message size limit on AD Site Links. Exchange Server 2007 uses the AD Site topology to determine the least cost paths. If the message size to be delivered to a remote AD Site exceeds the limit on the AD Site Link, message delivery will fail. By default, the MaxMessageSize on AD Site Links is set to unlimited. This can be changed using the following command:

Set-ADSiteLink “SITE LINK NAME” -MaxMessageSize 20Mb

Message size limits during coexistence with Exchange 2003

Global Settings

Besides the above, another message size limit can impact Exchange Server 2010/2007 recipients if you’re transitioning from Exchange 2003/2000, but it’s often overlooked when troubleshooting. This is the one in Exchange Server 2003 Global Settings | Message Delivery -> Properties.

Figure 5: You can use ADSIEdit to configure message size and max recipients per message in Global Settings

– If you have these configured to a specific value before you upgrade the Organization to Exchange Server 2010/2007, these are left untouched.
– If you have these set to “No Limit” before the Exchange Server 2007 upgrade, these are reset to the Exchange Server 2007 defaults.
– In case Exchange Server 2007’s Organization settings (the ones you can set using Set-TransportConfig) conflict with these legacy Global Settings, the lower of the two sizes are used.

The problem is, these are neither visible in the EMC, nor using any of the Exchange shell commands.

If you still have an Exchange Server 2003 server in the Organization, you can use ESM to modify these limits. Alternatively, you can use ADSIEdit to browse to the Configuration container | Services | Microsoft Exchange | YourOrgName | Global Settings | Message Delivery -> Properties, and modify the following attributes as required:

Routing Group Connector Limit

Routing Group Connectors are used in co-existence scenarios to transfer messages between Exchange Server 2003/2000 Routing Groups and the Exchange Server 2007 Routing Group(yes, there is one under the hood.. ). Messages exchanged between these Routing Groups should be below the message size limits of their respective RGCs. The default is set to unlimited.

To set the MaxMessageSize on a Routing Group Connector:

Set-RoutingGroupConnector “CONNECTOR NAME” -MaxMessageSize 20Mb

Content conversion and message size limits

When troubleshooting message size-related issues, the content conversion process was another source of confusion. Content conversion happens when Exchange converts an internet/MIME message to MAPI/Exchange format, and vice versa. Content conversion generally increases the message size — roughly by 30%. If you set a maximum message size of 10Mb., and wonder why a 9 Mb. attachment didn’t make it through, consider the content conversion overhead, as also message headers (which are computed along with the DATA portion of the message to calculate the message size), and any actions taken by Transport Rules or other transport agents.

How does Exchange 2010/2007 handle such messages? When a message enters the Exchange 2010/2007 Organization, it gets stamped with a X-MS-Exchange-Organization-OriginalSize header, which indicates the original size of the message before content conversion. When considering message size limits, if the message has since ballooned to a larger size due to content conversion, added headers, etc. the lower of the original message size and the current (converted) message size is considered, eliminating some of the confusion seen with message sizes in previous versions.

If the the sender isn’t allowed to send a message of that size, you get the following NDR:

#550 5.2.3 RESOLVER.RST.SendSizeLimit; message too large for this sender ##

If the sender’s size limits allow sending a large message, but the recipient’s limits do not allow receiving a message of that size, you get a NDR with the following text (note the enhanced status code informing you exactly why the message was rejected):

#550 5.2.3 RESOLVER.RST.RecipSizeLimit; message too large for this recipient ##

You can use the Exchange shell to track messages that could not be delivered because of message size issues. The RecipientStatus field in Message Tracking logs is used to store the SMTP response and enhanced status codes. The Message Tracking EventID we’re looking for is FAIL. (Read previous post on message tracking: “Exchange Server 2007: Message Tracking from the command line“)

Message size limits in Exchange Online

In Exchange Online, the message size limit is set to 25MB. Exchange Online also limits the number of attachments per message to 250. You can find all Exchange Online limits, including message size limits, in a single, comprehensive doc – Exchange Online Limits.

There are no separate limits for inside org and messages received from outside. The organization limit should be the largest message size you want to allow (in this case, to/from external users). You can have a lower limit on Receive Connectors which receive inbound Internet email, but not the other way round.

Just one request for clarification, though. With the Organizational limits, the function of “Transport Dumpster” has changed between Exchange 2007 and 2010. Factoring in these changes, does changing the other transport (send and receive) maximum sizes influence what you would set for the “Maximum size per mailbox database (MB)”? Thanks…

So the VIPs should be able to Receive, say, a 15MB message from the Internet just fine, right? WRONG!

One would think that Exchange would use the Global RECEIVE limit to evaluate incoming messages from the Internet.
BUT NO, Exchange uses the Global SEND limit for INCOMING mail. What kind of messed up logic is this?
I have never seen any other mail server that could not tell the difference between Incoming and Outgoing mail [and apply policies accordingly]

Add insult to injury. When 10MB SEND limit is set, Exchange cannot even receive 10MB messages because of the content conversion bloat.
So you say, big deal, increase the send limit to ~14MB, problem solved, right?
WRONG.
If I set the send limit to 14MB, I will be able to receive 10MB messages from the Internet allright…

But then my own users will be able to literally send 14MB messages out. I tell them the limit is 10MB, they will tell me I am a liar because they are sending 14MB out all day long.

We have two sets of users: Standard users and VIP users.
We want standard users to be able to send mail externally with a limit of 10MB and for VIP users to be able to send mail externally with a limit of 15MB.

We have only one Internet Send Connector. How do we configure Exchange to allow the two sets of users to send mail externally with their limits?

I know we can edit the ‘Message Size Restrictions’ on the inividual mailbox properties, but that is only for internal messages as you stated above.
How do we set this for external users?

You can’t do this using message size limits. For a message to be successfully sent and received, it must be within the size limits of the sender *and* the recipient. As noted in the post, messages sent/received to/from Internet senders are considered as sent/received by anonymous senders.

Another option would be transport rules, but there’s no predicate to inspect message size – there is one to inspect *attachment size*, which will consider each attachment separately. See Transport Rule Predicates in Exchange 2010 docs.

Great article!
Ok, all of the mailboxes that we migrated over from Exchange 2003 have their send/receive limit set to 4 MB. We want them to use the Exchange 2010 global settings and not have anything set individually. How do we get rid of the 4 MB limits?
Thanks!

Use this command to get a list of all mailboxes with MaxSendSize or MaxReceiveSize set to a non-default value:Get-Mailbox -FIlter {MaxSendSize -ne $null -OR MaxReceiveSize -ne $null} | ft Name,MaxSendSize,MaxReceiveSize

hi
please help me…i cant see attach file when i forward mail with attach file in microsoft outlook but when i see mail box with web browser i can see my attach file in mail forward..what is wrong please help me immediatly

So what really is the use for the per mailbox send/recieve limits? It seems that it would only be valuable if you have a high limit for your org and want to set some/most people to less than that. But that seems like a lot of effort and then should be done manually everytime you create a new mailbox.

Our situation is that we want just a particular user or group of users to be able to recieve large emails from the Internet. Imagine if you have an art department with valide need to recieve large work via email. But the only way to do this is with the Org config and Hub-transport recieve connector. But then that opens it up for everyone, correct?

I did all of this… I have 2 companies that want to send 15 MB files to eachother…So I set the transportconfig to 25MB, I set send/receive to 25MB, and still they get the same error with the 10MB limit. Makes no sense at all!! What else could be needed? I even went to a few ppl and set just their send receive to 25MB, which is pointless because it’s the global setting…or I thought as described above. What am I missing? I checked everything in EMS and dont see a single field that doesn’t show 25MB for attachments.

For my client (ex2010)we have an internal limit of 100mb limit and any incoming or outgoing outside the organisation we have 20mb limit. we would like to set one particular mailbox to send and receive 50mb from outside the organisation. if i do it from the hub transport that will change it globaly which i don’t want.

@Anish: As stated in the post, Internet mail is sent/received to/from anonymous recipients. For the individual exception to work, a message size must be within the allowed sizes of both sender and recipient. You can’t configure an exception for anonymous.

Ok so if I change the global settings to send/receive 25MB does that mean all users are allowed to send/receive attachments up to that size..rght ???? if i need it only for few users how do I configure the same ?

I have 2 ex2007 sp2 hub serves and have 15 mb send and rec limits sent on global settings and on connectors. I changed its value to 25 mb and restarted transport services .Still user is not able to send email with attachment of more than 14 mb. May i missing any configs ?

Hi, thanks for the great article, but i think you should also change the value “Transport Dumpster” in the global Transport Settings. Otherwise the message Limit would be 18MB (Default value). The value should be 1.5 tims of the max size Limit (so 60MB in your case).
Greetings, Lukas

I am also facing this same problem in exchange 2010 while sending more than 10 MB emails.i have changed mail size limit upto 20 mb in both send connector and global settings and also did restart the server.But problem is not solved yet. Actually i have two accepted domains in the server. ex ,aaa.ae & aaa.com. aaa.com is true .but in send connector aaa.ae is showing. aaa.com domain is sending failure delivery message while sending more than 10 MB email.do i need to change aaa.ae to aaa.com in send connector ?or is this an another issue ??Looking forward to hear you soon

Hi guys,
I’m pulling my hair off with this. I had a request to augment from 10Mb to 40Mb the allowance and I’ve done everything I know:

– Set the Transport Settings to 40Mb
– Set every single Receive Connector to 40Mb
– I don’t have individual mailbox maxsend /maxreceive limits
– Followed Rob Sept2012 advice to set ExternalDsnMaxMessageAttachSize and InternalDsnMaxMessageAttachSize to 40Mb
– Verified Email hosted security size is set to 50Mb
– Did all those settings 24 hours ago so restart services is out of the question

So, Why my messages both internally and externally are still rejected????? I’m sending a 15Mb message which it 30% is less than 20Mb. OMG!!! I’m sure that I’m missing something stupid.

Hi, I would like to add that there’s around 10MB overhead being added for external emails so if you’re expecting to receive a 30MB email (body + attachment), your hubs must be configured to receive 39MB at least.

I need to reduce that to 200MB. There are a few users that have mailbox sizes of 400MB or above.

My question is what will happen to the mailboxes that are above 200MB when I set the DB limit to 200MB? I assume nothing will get deleted , but that the users will start to get ‘Mailbox Full’ messages.