There has long been “somewhere” in my exchange organisation that has a 10MB message size limit, rather than our supposed standard 15MB. Finally this annoyed me enough to do something about it. Because I’m all for saving time, I figured I’d script it. I trawled through Exchange and found all the places where it is possible to limit the size of messages (if I’ve missed any, please let me know!). From here I wrote a script to find the size limit on every instance of each of these possible places. As far as I can see, there are three places of concern in an Exchange 2010 organization: Send Connectors, Receive Connectors and the Global Transport Configuration.
Evaluating the Current Limits
It is possible to use three simple cmdlets to retrieve any and all data that is required to achieve my goal…But that wouldn’t be much fun, would it? No sense running these three and trawling through the results each time. See Making it Pretty below for the final result.
Send Connectors are present at the organization level (that is, they are not specific to a particular server, and can be assigned to one or more). To retrieve send connectors, simply use the Get-SendConnector
cmdlet. We are looking at the MaxMessageSize
property:
Receive Connectors are server-specific. Fortunately, however, this is irrelevant in our case: Get-SendConnector
and the MaxMessageSize
property are this time of interest:
Finally let’s investigate the Global Transport Config. This applies to All transports in the Organization. You can retrieve its settings by running the cmdlet Get-TransportConfig
. We’re interested in the properties MaxReceiveSize
and MaxSendSize
:
Making it Pretty
It’s pretty easy to trawl through the above results and investigate them…but where’s the fun in that? Or perhaps you want to do this as part of your regular Exchange Organisation health check report (you do have one, don’t you?)? I’m going to start by finding the smallest message size limit, since this is the one that we’re concerned about here. Small size limits act as a bottle-neck in the truest sense of the word.
I’ve put all my relative limits into an object array that looks like this:
Type Server Name Limit
---- ------ ---- -----
SendConnector Organization EdgeSync - Default-First-Site-Name to Internet 10 MB (10,485,760 bytes)
SendConnector Organization EdgeSync - Inbound to Default-First-Site-Name unlimited
ReceiveConnector EX01 Default EX01 15 MB (15,728,640 bytes)
ReceiveConnector EX01 Client EX01 15 MB (15,728,640 bytes)
ReceiveConnector EX02 Default EX02 15 MB (15,728,640 bytes)
ReceiveConnector EX02 Client EX02 15 MB (15,728,640 bytes)
ReceiveConnector EX01 Anonymous Authentication Networks 15 MB (15,728,640 bytes)
ReceiveConnector EX02 Anonymous Authentication Networks 15 MB (15,728,640 bytes)
TransportConfig Organization Maximum Receive Size 15 MB (15,728,640 bytes)
TransportConfig Organization Maximum Send Size 15 MB (15,728,640 bytes)
Let’s grab the smallest limit from here (Note: Usually you would use Measure-Object
here, but “unlimited” is, unfortunately, not a numerical value):
Now we know which is the very smallest size of message that can fully traverse the organization as well as one of the places it exists. To find all the places this smallest limit exists, we run this line:
Download the finished script here.
And of course, the output:
The maximum size of any email that can fully traverse your Exchange Organization is 10 MB (10,485,760 bytes)
This is because of the following object(s):
Type Server Name Limit
---- ------ ---- -----
SendConnector Organization EdgeSync - Default-First-Site-Name to Internet 10 MB (10,485,760 bytes)
You should raise the maximum size of message allowed across the object(s) above if you are having mail
delivery issues of large items. Note that this script will not check non-exchange transports such as
AntiVirus and Smart-hosts.
Raise the size of message allowed across Send Connectors with Set-SendConnector -MaxMessageSize
Raise the size of message allowed across Receive Connectors with Set-ReceiveConnector -MaxMessageSize
Raise the size of message allowed across the global transport config with Set-TransportConfig -MaxReceiveSize
and Set-TransportConfig -MaxSendSize
Comments/questions
There's no commenting functionality here. If you'd like to comment, please either mention me (@[email protected]) on Mastodon or email me. I don't have any logging or analytics running on this website, so if you found something useful or interesting it would mean a lot to hear from you.