Difference between revisions of "Configuring maxmessagesize"

m (Telnet Test To MTA's To See Max Size)
m (Telnet Test To MTA's To See Max Size)
Line 118: Line 118:
You can then telnet to the hosts mention over port 25 and see what the max size it set to.
You can then telnet to the hosts mention over port 25 and see what the max size it set to.

Revision as of 17:00, 16 April 2014

The following explains how to observe and adjust the Maximum Message Size for messages passing through the Zimbra MTA (Postfix). The message_size_limit postconf parameter is configured globally for all Zimbra MTAs. The default Zimbra MTA configuration uses the default Postfix message_size_limit of 10MB (i.e. '10240000' bytes). Note that this is the size of the full RFC 2822 internet message, after any necessary MIME-encoding.

An Initial Warning On These Values

Please do not set these limits too high, as postfix will check to confirm you have the free space on the partition. For zimbraMtaMaxMessageSize, it multiplies the variable by 1.5 and if the free space isn't available on the partition it will not send ANY messages - effectively causing an mta outage. You'll see a message in /var/log/zimbra.log like this if you set zimbraMtaMaxMessageSize to high :

Jan 15 11:18:53 SERVERNAME postfix/smtpd[29088]: NOQUEUE: reject: MAIL from smtp.DOMAIN.com[]: 
  452 4.3.1 Insufficient system storage; proto=ESMTP helo=<mail.DOMAIN.com>
Jan 15 11:18:53 SERVERNAME postfix/smtpd[29088]: warning: not enough free space in mail queue: 
  161044520960 bytes < 1.5*message size limit

General Discussion About Value Sizing

This is being added because we find many customers are confused by the variable sizing and then what users see as the limitation when they go to upload an attachment. This wiki mentions the various variables involved with message sizing. The important part to pay attention to is:

  • "Note that this is the size of the full RFC 2822 internet message, after any necessary MIME-encoding."

There is no predictable % increase of the message size after the encoding. We recommend a 150% assumption if one doesn't want to be tweaking the variables often. Meaning, if your policy it to not allow the sending of messages/attachments much larger than 25 MB's BEFORE encoding, then use 38MB's for the variable numbers that you would configure per the steps below. Normally, the encoding never reaches this level.

To upload a 15957664 byte file [15.218414307 megabyte] you would need to have the upload limit at least set to 20.849226952 [megabytes]. That's using %137 increase for mime-encoding. See this article for details on it:

You can use this calculator to help manage the variable you want:

Note - again, we recommend use %150 conversion rate for the encoding so you can be sure of the upload rather than cutting it close. The %137 reference isn't a fixed number but rather a possible average.

Postfix configuration (zimbraMtaMaxMessageSize and message_size_limit)

You can examine the current value of this parameter like this:

# su - zimbra
$ postconf message_size_limit
message_size_limit = 10240000

This configuration parameter is stored in the zimbra ldap directory, and propagated to postconf's message_size_limit by zmmtaconfig, which is invoked by the zimbra postfix command. The following commands will set the message_size_limit to 2MB (adjust this value to suit your needs):

# su - zimbra
$ zmprov modifyConfig zimbraMtaMaxMessageSize 2048000
$ postfix reload

You can then confirm the changes with this command:

$ postconf | grep message_size_limit


Please note: zimbraMtaMaxMessageSize also applies to IMAP APPENDs. The IMAP server will set the largest allowed message size to the zimbraMtaMaxMessageSize value. This would apply to the APPEND operation, which would include actions such as copying a message in an IMAP client.

File upload size configuration (zimbraFileUploadMaxSize)

Until ZCS 5, there is a separate configuration parameter for file uploads . File uploads include, for example, attachments to messages (appointments, tasks, etc), and messages imported by the migration tools (PST Import Wizard, Exchange Migration Wizard, etc). The zimbraFileUploadMaxSize can be configured globally or per server. Note: If you have more than one mailbox node, it may be necessary to restart tomcat on nodes where the commands were not run in order to pick up the changes immediately.

This will globally set the size to 5mb:

# su - zimbra
$ zmprov modifyConfig zimbraFileUploadMaxSize 5000000

Then this will allow 20mb uploads to the server mail2.domain.com:

$ zmprov modifyServer mail2.domain.com zimbraFileUploadMaxSize 20000000

If change does not happen after a short period of time or flushing the cache, you most likely will need to do a full zmcontrol restart on the mailstores. See:

The size of the zimbraMailContentMaxSize controls the overall message size

su - zimbra
zmprov ms `zmhostname` zimbraMailContentMaxSize 20000000  
zmprov modifyConfig zimbraMailContentMaxSize 20000000
<attr id="807" name="zimbraMailContentMaxSize" type="long" cardinality="single" optionalIn="globalConfig,server" flags="serverInherited" since="6.0.0_BETA1">
  <desc>Maximum size in bytes for the <content > element in SOAP.  Mail content larger than this limit will be truncated.</desc>
 Here is an example to set the max message size to 42MB
zmprov ms `zmhostname` zimbraFileUploadMaxSize 44040192
zmprov ms `zmhostname` zimbraMailContentMaxSize 44040192
zmprov mcf zimbraMtaMaxMessageSize 44040192
postfix reload
one thing to watch for is to use a conversion toll to calculate the value in bytes otherwise it won't be accepted

If change does not happen after a short period of time or flushing the cache, you most likely will need to do a full zmcontrol restart on the mailstores. See:

What The User Sees In ZWC For An Attachment

With ZCS 8.0.4, the max. upload size will reflect the size after encoding. Before ZCS 8.0.4, they saw the size prior to encoding, which caused confusion.

Telnet Test To MTA's To See Max Size

This can be useful to test if your server is configured right or if it's another server that is rejecting messages because of max. size. Let's say you get a bounce message, something like:

[Email service] tried to deliver your message, but it was rejected by the server for the recipient
domain domainA.com by emailgateway.domainA.com [].

The error that the other server returned was:
552 5.3.4 Error: message file too big from [Email service mta ip address]

You can then telnet to the hosts mention over port 25 and see what the max size it set to.

$ telnet 25
Trying 2192.168.1.1...
Connected to
Escape character is '^]'.
220 [some vendor identifier] service is ready.
ehlo example.com
250-[some vendor identifier]
250-SIZE 15728640

The "250-SIZE 15728640" is the one your interested in. In this case, there's a 15MB max message size limit by the companies mta relay edge device. Zimbra wasn't the problem in this case.

Additional Resources


Verified Against: unknown Date Created: 1/31/2007
Article ID: https://wiki.zimbra.com/index.php?title=Configuring_maxmessagesize Date Modified: 2014-04-16

Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search