===== Лимиты на отправку и получение =====
==== Увеличение лимитов подключений и количества писем коннекторов приема ====
По умолчанию в Exchange не слишком большие лимиты для коннекторов приема. С одного IP можно отправлять не более 5 писем в минуту. Это довольно мало, если мы делаем большие автоматизированные рассылки, к примеру, для 1С. В этом случае часть писем будут уходить без проблем, а часть отбрасываться. В случае с 1С рассылкой, которая обращается на коннектор Client Frontend нужно увеличить лимиты ещё и для коннектора Client Proxy.
Это можно сделать следующим образом:
Set-ReceiveConnector -Identity "Client Proxy MX03" -MessageRateLimit 200 -MaxInboundConnection 10000 -MaxInboundConnectionPerSource 100 -MaxInboundConnectionPercentagePerSource 30
Set-ReceiveConnector -Identity "Client Frontend MX03" -MessageRateLimit 200 -MaxInboundConnection 10000 -MaxInboundConnectionPerSource 100 -MaxInboundConnectionPercentagePerSource 30
----
==== Размеры вложений ====
==== Транспортные ограничения и коннекторы ====
Узнать текущие транспортные лимиты можно командой:
Get-TransportConfig | ft MaxSendSize, MaxReceiveSize
Выставить необходимый параметр можно, например, так:
Set-TransportConfig -MaxRecieveSize 100MB
Set-TransportConfig -MaxSendSize 100MB
Узнаем ограничения на коннекторах приёма и отправки:
Get-ReceiveConnector | ft Name, MaxmessageSize
Get-SendConnector | ft Name, MaxMessageSize
Меняем настройки коннекторов:
Get-ReceiveConnector | Set-ReceiveConnector -MaxmessageSize 100mb
Get-SendConnector | Set-SendConnector -MaxmessageSize 100mb
=== Ограничения, установленные на уровне конкретного ящика ===
Get-Mailbox jp@arasaka.local | ft Name, MaxSendSize, MaxReceiveSize
Set-Mailbox jp@arasaka.local -MaxSendSize 100mb -MaxReceiveSize 100mb
==== Размеры вложений Active Sync ====
Для протокола Active Sync в Exchange существуют отдельные лимиты, не связанные с лимитом коннекторов. В случае превышения лимита на отправку - на мобильном телефоне можно наблюдать сообщение о недоставленном письме следующего содержания:
EasSendFailedPermanentException: An EAS Send command failed: Unable to send the message: either the send quota has been exceeded; or the message was too large; or the mailbox is over-quota.
Ниже следует перечень конфигураций, где необходимо поменять данный лимит.
:!: //При рассчёте лимитов Active Sync - требуется учитывать, что все сообщения и вложения отправляются в кодировке base64, что увеличивает их фактический объём приблизительно на 33%.//
1) Проверить файл:
C:\Program Files\Microsoft\Exchange Server\v15\ClientAccess\Sync\web.config
В данном случае, как видно, лимит установлен в 30 МБ.
2) Проверить настройки IIS для сайтов //Default Web Site// -> //Microsoft-Server-ActiveSync// и //Exchange Back End// -> //Microsoft-Server-ActiveSync//.
Для данных сайтов в консоли управления IIS нужно выбрать //Features View// и открыть //Configuration Editor//. Вверху, в графе //section// нужно найти следующий параметр: //system.webServer/security/requestFiltering//, далее раскрыть ветку //requestLimits// и задать //maxAllowedContentLength// в байтах.
Пример показан на скриншоте.
;#;
{{::ex_max_allowed_content_length.jpg?400|}}
;#;
По умолчанию этот параметр установлен в 30000000 байт.
:!: //Параметр необходимо проверить для двух указанных выше сайтов.//
3) Отредактировать настройки данного файла:
%ExchangeInstallPath%FrontEnd\HttpProxy\Sync\web.config
Интересующий нас параметр (по умолчанию установлен в 10 МБ):
maxRequestLength="10240"
4) Переходим к следующему файлу:
%ExchangeInstallPath%ClientAccess\Sync\web.config
Правим параметр, который также по умолчанию устанавливает лимит в 10 МБ.
maxRequestLength="10240"
5) Последний файл, который нас интересует:
%ExchangeInstallPath%ClientAccess\Sync\web.config
Здесь мы ищем строку следующего содержания также задающую лимит в 10 МБ:
=== Настройки лимитов ActiveSync через скрипт ===
Гораздо удобнее внести такие же настройки через скрипт cmd.
%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
==== Изменение размеров вложений OWA ====
Настройку проще всего делать через скрипт cmd.
:!: Меньшее число - это объём вложения в килобайтах, больщее - в байтах. Учитывая, что кодировка base64 добавляет актуальный вес в 33% - следует это учитывать при расчёте конечного размера вложения в данной конфигурации.
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:35000000
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa/" -section:system.web/httpRuntime /maxRequestLength:35000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:35000000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.web/httpRuntime /maxRequestLength:35000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpsBinding'].maxReceivedMessageSize:35000000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpBinding'].maxReceivedMessageSize:35000000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpsBinding'].readerQuotas.maxStringContentLength:35000000
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/owa/" -section:system.serviceModel/bindings /webHttpBinding.[name='httpBinding'].readerQuotas.maxStringContentLength:35000000
==== Изменение размеров вложений EWS ====
Скрипт cmd:
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ews/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.webServer/security/requestFiltering /requestLimits.maxAllowedContentLength:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSAnonymousHttpsBinding'].httpsTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSAnonymousHttpBinding'].httpTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSBasicHttpsBinding'].httpsTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSBasicHttpBinding'].httpTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSNegotiateHttpsBinding'].httpsTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSNegotiateHttpBinding'].httpTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityHttpsBinding'].httpsTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityHttpBinding'].httpTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecuritySymmetricKeyHttpsBinding'].httpsTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecuritySymmetricKeyHttpBinding'].httpTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityX509CertHttpsBinding'].httpsTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /customBinding.[name='EWSWSSecurityX509CertHttpBinding'].httpTransport.maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /webHttpBinding.[name='EWSStreamingNegotiateHttpsBinding'].maxReceivedMessageSize:67108864
%windir%\system32\inetsrv\appcmd.exe set config "Exchange Back End/ews/" -section:system.serviceModel/bindings /webHttpBinding.[name='EWSStreamingNegotiateHttpBinding'].maxReceivedMessageSize:67108864
:!: //После изменения всех параметров - требуется перезагрузить службу IIS. Проще всего это сделать через консоль IIS (через команды меню: stop, start)//
Статья Microsoft об изменении размера вложений:
https://learn.microsoft.com/en-us/exchange/architecture/client-access/client-message-size-limits
----
==== Проверить лимиты на отправку или получение в правилах ====
Ограничения по размеру писем могут быть заданы в транспортных правилах. Получить информацию об этом можно следующим образом:
Get-TransportRule | where {($_.MessageSizeOver -ne $null) -or ($_.AttachmentSizeOver -ne $null)} | Format-Table Name,MessageSizeOver,AttachmentSizeOver
----
==== Ограничения на количество адресатов ====
MS Outlook\OWA: 500 получателей в рамках одного письма. \\
На уровне организации:
Get-TransportConfig | Format-List MaxRecipientEnvelopeLimit
Для всех коннекторов:
Get-ReceiveConnector | Format-Table name,MaxRecipientsPerMessage
Для конкретных ящиков:
Get-Mailbox | Format-List RecipientLimits
Статья Microsoft о лимитах:
https://learn.microsoft.com/en-us/exchange/mail-flow/message-size-limits
{{tag>Exchange Microsoft Mail PowerShell IIS}}