Controlling attachment size in Exchange Server 2007 Outlook Web Access (OWA)
Published Nov 14 2006 03:35 PM 14.7K Views

Yesterday afternoon, I was trying to send a large video of my new born baby to my mom through Exchange Server 2007 Outlook Web Access (OWA). And when I tried to upload the video, OWA would not let me do so. Darn it - cannot even share my baby's first shower with my mother. And then I realized - hey, didn't I write some code to prevent such uploads?

Now, you might say that sending my baby's video does not exactly constitute the best use of company resources but I can think of a lot of Administrators that might want to have control over attachment size in OWA.

If you are an administrator of an Exchange Server of your organization, read on...

By default, Exchange 2007 OWA will let you send attachments of up to 30 MB in size. Depending on your situation, you might want to either increase or decrease this number as we have a mechanism by which you can change the default upload limits of file attachments in OWA.

For example: in order to send attachments which are 50 MB or larger:

1. You need to set the MaxRequestLength in web.config to a value larger than 50 MB. The MaxRequestLength in web.config is an ASP.NET setting that prevents requests larger than a certain length which was added to prevent DOS attacks. It is set to 30 MB by default and needs to be increased in order to send attachments larger than 30 MB. This could also be decreased to enforce a lower limit.

2. You need to increase the MaxSubmitMessageSize which is a readonly Mailbox property (MaxSubmitMessageSize = 0x666D0003) and this is where we are getting the 10 MB limit from.

This is read from the following places:

  1. First read from Mailbox object of the user itself
  2.  if not found as denoted by "unlimited", Transport Settings Container
  3.  if not found as denoted by "unlimited", from Org Container (default read from Org Container)

In order to set the value, use the following tasks in the Exchange Management Shell:

1. set-transportconfig and then set MaxSendSize (this is in KBs) to 51200 for 50 MB attachments. This will set it for all users

Or

2. set-mailbox and set the MaxSendSize (this is in KBs) to 51200 for 50 MB attachments for a specific set of users.

Once you set either, you need to recycle store or not access the mailbox for about 15-20 minutes (to let store cache expire) in order for the size change to have affect. Also, the property is stored in AD and subject to replication delays.

One more thing that you need to be aware of (sorry, the list just goes on):

We have a Request timeout of 60 minutes for any attachment upload request or attachment download (in OWA Basic and Premium). So, if you are trying to upload a 50MB attachment over a 56Kbps link, you will time out and get a HttpWebException (e.g., the max upload is about 25 MB over a 56 Kbps link).

So, to summarize, there are two keys to send a large attachment:

1. Modify ASP.NET web.config settings.

2. Modify the MaxSendSize using either the set-TransportConfig (for all users) or Set-Mailbox for individual users.

And you need to

3. Make sure the total upload time will be less than 60 minutes (based on your size and the speed of your network link)

The web.config change is immediate but the MaxSendSize change takes time, due to caching policy (Mailbox cache, DSAccess delays, and replication delays).

Examples:

Web.Config change

By default, web.config under OWA Vdir (Microsoft\Exchange Server\ClientAccess\Owa) will have the following entry (by default, the max request size is approximately 30MB):

<system.web>

<httpRuntime maxRequestLength="30000" />

....

</system.web>

Change <httpRuntime maxRequestLength="30000" /> to <httpRuntime maxRequestLength="X" /> where X is the desired value in KBs. So, for 50MB, X will be approximately 50000.

Change per-user message size limit

Go to Exchange Management Shell, and type the following command:

Set-mailbox -id:"username" -MaxSendSize:50000

Where "username" is the mailbox identity. This will set the maximum message send limit to approximately 50 MB. You will need to restart store to see the effect immediately.

Change all-user message size limit

Go to Exchange Management Shell, and type the following command:

Set-transportconfig -MaxSendSize: 50000

This will set the maximum message send limit to approximately 50 MB. You will need to restart store to see the effect immediately.

- Raj Mukherjee

9 Comments
Version history
Last update:
‎Jul 01 2019 03:20 PM
Updated by: