===== Лимиты на отправку и получение ===== ==== Увеличение лимитов подключений и количества писем коннекторов приема ==== По умолчанию в 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}}