Auf einem Exchange Server lassen sich an verschiedenen Stellen eine Größenbeschränkung für E-Mails konfigurieren. Dabei lassen sich die Limits sehr granular, beispielsweise auf Postfach oder Protokoll Ebene konfigurieren. Welche Möglichkeiten es gibt, listet dieser Artikel auf.
Dieser Artikel gilt auch für Exchange 2016.
TransportConfig: Globale Größenbeschränkung
In der TransportConfig werden die globalen Limits für E-Mails festgelegt. Die Limits in der TransportConfig gelten für alle Exchange Server in der Organisation. In der Standardeinstellung dürfen gesendete und empfangene Mails nicht größer als 10MB sein. Die Einstellungen lassen sich mit dem folgenden Befehl prüfen:
Get-TransportConfig | fl MaxReceiveSize,MaxSendSize
Um beispielsweise 20MB große E-Mails zu erlauben, kann der folgende Befehl genutzt werden:
Set-TransportConfig -MaxReceiveSize 20MB -MaxSendSize 20MB
Die Limits der Transportconfig lassen sich bei Bedarf auf Mailbox Ebene überschreiben.
Mailbox: Granulare Limits für E-Mails
Die Limits der TransportConfig lassen sich auf Mailbox Ebene überschreiben, auf diesem Weg lässt sich granular auf jeder Mailbox die maximale E-Mail Größe festlegen. In der Standardeinstellung haben alle Benutzerpostfächer den Wert „Unlimited“, dies bedeutet aber nicht, dass es keine Größenbeschräkung gibt, sondern das in diesem Fall das globale Limit der TransportConfig gilt. Die Mailbox Limits lassen sich mit folgendem Befehl prüfen:
get-mailbox | ft name,MaxSendSize,MaxReceiveSize
Um das Limit auf einem Postfach zu verändern kann der folgende Befehl verwendet werden:
set-mailbox administrator -MaxSendSize 30MB -MaxReceiveSize 30MB
Das Limit der Mailbox überschreibt das Limit der TransportConfig. Sind in der TransportConfig 10MB festgelegt, auf Mailbox Ebene aber 20MB erlaubt, darf der Benutzer 20MB große Mails empfangen oder senden. Die Größenbeschränkung gilt dann nur für die konfigurierten Postfächer, ein Benutzer mit TransportConfig Limit (MaxSendSize) von 10MB darf also keine 15MB Mail an einen Benutzer mit Mailbox Limit (MaxReceiveSize) von 20MB senden.
Sende- und Empfangsconnectoren
Auch auf Sende- und Empfangsconnectoren lässt sich die Größenbeschränkung für E-Mails festlegen. In der Standardeinstellung sind 36MB für die Empfangsconnectoren und 35MB für die Sendeconnectoren konfiguriert. Mit dem folgenden Befehl lassen sich die Werte anzeigen:
Get-ReceiveConnector | ft name,maxmessagesize
Get-sendConnector | ft name,maxmessagesize
Mit den folgenden Befehlen lassen sich die Werte anpassen:
Get-ReceiveConnector | Set-ReceiveConnector -MaxMessageSize 50MB
Get-sendConnector | Set-SendConnector -MaxMessageSize 50MB
ActiveSync: Größenbeschränkung für Smartphones
Für Verbindungen via ActiveSync Protokoll sind in der Standardeinstellung 10MB große Mails erlaubt. Die tatsächliche maximale Größe ist jedoch geringer, da die Base64 Kodierung die Mails ca. 33% größer werden lässt. Bei einem Limit von 10MB lassen sich also ca. 7MB große Mails via ActiveSync übertragen. Leider lassen sich die Limits nicht direkt über CMDLet’s der Exchange Management Shell festlegen, sondern müssen in die web.config des vDirs geschrieben werden. Die folgenden Befehle können für die ActiveSync Limits verwendet werden:
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:30000000
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/Microsoft-Server-ActiveSync/" -section:system.web/httpRuntime /maxRequestLength:10240
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/Microsoft-Server-ActiveSync/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:30000000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/Microsoft-Server-ActiveSync/" -section:system.web/httpRuntime /maxRequestLength:10240
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/Microsoft-Server-ActiveSync/" -section:appSettings /[key='MaxDocumentDataSize'].value:10240000
Bei den Befehlen muss man etwas aufpassen, manche Werte werden in Bytes, andere in KiloBytes angegeben. In dem Beispiel von oben sind die kleinen Zahlen in KiloBytes, die großen Zahlen in Bytes. Zur Vereinfachung hier einmal die Rechenschritte für Bytes und KiloBytes inkl. 33% Overhead durch die Base64 Kodierung (Als Beispiel 50MB als Maximalgröße):
- KiloByte: 50 x 1,33 x 1024 = 68096 KB
- Byte: 50 x 1,33 x 1024 x 1024 = 69730304 Byte
Wichtiger Hinweis: CUs ersetzen die web.config der vDirs. Nach einem Update des Exchange Servers, müssen die ActiveSync Limits neu konfiguriert werden, da diese nach der Installation eines CUs nicht übernommen werden.
Für das Aufführen der Befehle wird die normale CMD anstatt der Exchange Management Shell verwendet:
Exchange Web Services (EWS)
Für Verbindungen via Exchange Web Services (EWS) sind in der Standardeinstellung 64MB große Mails erlaubt. Die Limits werden, wie bei ActiveSync auch, in der web.config gespeichert. Alle Limits sind hier in Bytes angegeben, das Base64 Encoding muss hier nicht beachtet werden. Mit den folgenden Befehlen lassen sich die Limits für EWS ändern:
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ews/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSAnonymousHttpsBinding'].httpsTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSAnonymousHttpBinding'].httpTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSBasicHttpsBinding'].httpsTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSBasicHttpBinding'].httpTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSNegotiateHttpsBinding'].httpsTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSNegotiateHttpBinding'].httpTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityHttpsBinding'].httpsTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityHttpBinding'].httpTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecuritySymmetricKeyHttpsBinding'].httpsTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecuritySymmetricKeyHttpBinding'].httpTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityX509CertHttpsBinding'].httpsTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityX509CertHttpBinding'].httpTransport.maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /webHttpBinding.[name='EWSStreamingNegotiateHttpsBinding'].maxReceivedMessageSize:104857600
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /webHttpBinding.[name='EWSStreamingNegotiateHttpBinding'].maxReceivedMessageSize:104857600
Hier noch der Rechenweg für die EWS Limits (100MB als Beispiel):
- Byte: 100 x 1024 x 1024 = 104857600 Byte
Für das Ausführen der Befehle wird die CMD verwendet, nicht die Exchange Management Shell:
OWA
Auch für OWA lassen sich die Limits festlegen, in der Standardeinstellung erlaubt OWA 35MB große E-Mails. Wie auch bei EWS und ActiveSync werden die Limits in der web.config gespeichert, gehen also bei der Installation eines CUs verloren und müssen neu gesetzt werden. Die folgenden Befehle können für die Anpassung des Limits benutzt werden, auch hier gibt es wieder Werte in Byte und KiloByte:
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:52428800
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.web/httpRuntime /maxRequestLength:51200
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:52428800
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.web/httpRuntime /maxRequestLength:51200
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpsBinding'].maxReceivedMessageSize:52428800
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpBinding'].maxReceivedMessageSize:52428800
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpsBinding'].readerQuotas.maxStringContentLength:52428800
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpBinding'].readerQuotas.maxStringContentLength:52428800
Hier noch der Rechenweg für die OWA Limits (50MB als Beispiel):
- Byte: 50 x 1024 x 1024 = 52428800 Byte
- KiloByte: 50 x 1024 = 51200 KiloByte
Für das Ausführen der Befehle wird auch hier die normale CMD verwendet: