It seems like every month I get a call about someone not being able to send or receive an email due to size limits. If you know where all the limits are in the Exchange Management Console (and if you’re aware of the 30% bloating that happens with email attachments) you can usually resolve that issue pretty quickly. If you’re new to Exchange, or a bit rusty, it might take longer.
Here’s a way to see all of your Exchange attachment limits in one screen.
Simple PowerShell Script to Show Exchange Message Size Limits
1. Copy and paste the following commands into Notepad.exe:
get-transportconfig | ft maxsendsize, maxreceivesize
get-receiveconnector | ft name, maxmessagesize
get-sendconnector | ft name, maxmessagesize
get-mailbox |ft Name, Maxsendsize, maxreceivesize
2. Save that text document with a .PS1 file extension, and you now have your PowerShell file. I named my file “email_limits.ps1”.
Example contents of file email_limits.ps1:
Note: You can reuse this .PS1 file on any SBS 2008 (Exchange 2007) or SBS 2011 (Exchange 2010) servers.
3. Copy that file to your SBS server in a folder on the C: or D: drive.
I use a folder called “Scripts” on the D: drive.
4. Right-click the Exchange Management Shell and Run as Administrator.
(Say Yes to any User Account Control prompt, if needed.)
5. In the Powershell window type the name of your .PS1 file (including the full path) and hit Enter.
Example: D:\scripts\email_limits.ps1
RESULTS
Example 1
SBS 2008 / Exchange 2007 (showing increased limits for a true 20 MB)*
Example 2
SBS 2011 / Exchange 2010 (w/ factory defaults)
*As you can see from Example 1, the Fax connector is still set at 10 MB, but the other limits have been changed to 29257 KB to allow for true 20MB attachments with the attachment bloating.
Formula for calculating overhead: (x MB * 1024) /.70 = limit in KB
Example: (20 MB x 1024) /.70 = 29257KB
Of course, you can also use PowerShell to change the limits, but I don’t have a script saved for that because the Set-ReceiveConnector, Set-SendConnector, etc. commands require that the server name be included in the script.
Example: Set-ReceiveConnector “Windows SBS Internet Receive Servername” –MaxMessageSize 29MB
If I need to change the limits, I still just go old school and use the GUI in the Exchange Management Console.
Remember – there are four common places in Exchange where the email attachment size could be limited:
- Transport limit
- Receive limit
- Send limit
- Mailbox limit
We’ll show you where each one of those is located.
Exchange 2007 / 2010 Management Console Size Limit Locations
- 1. Transport Limit
Exchange Management Console | Organization Configuration | Hub Transport | Global Settings | Transport Settings | Properties | General | Transport Limits
Note: a blank transport limit box means ‘unlimited’.
- 2. Receive Limits
(In SBS 2008 or 2011 there are typically 3 Receive Connectors)Exchange Management Console | Server Configuration | Hub Transport | Receive Connectors | right-click the receive connector | Properties | General | Maximum Message Size (KB)
Note: The “Default {servername}” is your internal / .local connector.
The “Windows SBS Internet Receive {servername}” is your external / .com connector. You’ll notice the difference in the Properties window on the FQDN line – one is .local and the other is .com/.org/etc.Also, regarding the internal connector, you may sometimes need to increase your “Default {servername}”(.local) connector to accommodate on-site scanners / multi-function copiers that scan to PDF and email internal employees. If so, this is where you do it. Just make sure the employees can receive attachments that large.
- 3. Send Limit
Exchange Management Console | Organization Configuration | Hub Transport | Send Connectors | Windows SBS Internet Send {servername} | Properties | General | Maximum Message Size (KB)
- 4. Mailbox Limits
Exchange Management Console | Recipient Configuration | Mailbox | {username} | Properties | Mail Flow Settings | Message Size Restrictions | Properties | Maximum Message size (in KB)
Note: a blank message size limit box means ‘unlimited’, but the user will still be restricted by the other the limits (shown in 1-3 above).
Bottom line: Use the sample .PS1 script to quickly make sure that all limits are set properly. Life is too short to dig through the GUI and check 4 or 5 locations manually if you don’t have to.
If you have any feedback or helpful PowerShell scripts that relate to email limits in Exchange 2007 or 2010, please feel free to post them in the comments.
More details: Official SBS Blog