На мой взгляд, тема управления ограничением размера сообщений достаточно популярная и на форумах часто встречаются вопросы касающиеся того как увеличить/уменьшить размер сообщений, которые может отправлять/получать пользователь организации Exchange. В этой статье я постараюсь описать основные регулирующие механизмы, которые работают во время передачи сообщений между различными узлами почтовой системы предприятия и покажу как они конфигурируются.
Типы ограничений и их область действия
Начнем с самого начала и определимся с тем, какие типы ограничений существуют для сообщений, передаваемых в среде Microsoft Exchange, и на каких уровнях они настраиваются.
Существуют следующие виды ограничений размера:
- Заголовка – суммарный размер всех полей заголовка сообщения. Определяется параметрами MaxHeaderSize и PickupDirectoryMaxHeaderSize;
- Сообщения – общий размер сообщения, включая вложения, заголовок и текстовую часть. Определяется параметрами MaxMessageSize, MaxSendSize, MaxReceiveSize;
- Вложения – размер каждого конкретного вложения. Определяется параметром AttachmentSizeOver;
- Количества получателей – все получатели, указанные в полях To:, Cc:, Bcc. Группа рассылки – один получатель. Определяется параметрами MaxRecipientPerMessage, RecipientLimits, PickupDirectoryMaxRecipientPerMessage (для сервера) и MaxRecipientEnvelopeLimit (для организации).
Также есть несколько уровней, на которых могут применяться озвученные выше ограничения:
- Ограничения организации – применяются ко всем транспортным сервера организации Exchange. Устанавливаются командлетом Set-TransportConfig.
- Глобальные ограничения – автоматически копируются из ограничений организации, и хранятся в базе данных Active Directory. До выхода Microsoft Exchange Server 2007 SP1 автоматического копирования не происходило и в случае конфликта применялось наименьшее значение.
- Ограничения соединителя – устанавливаются для конкретных соединителей получения/отправки. Также устанавливаются для связей между сайтами Active Directory (Site Link) и для соединителей групп маршрутизации, в случае наличия серверов MS Exchange 2003/2000. Про Настройку ограничения на размер сообщений для внутренней маршрутизации можно почитать в библиотеке TechNet.
- Ограничения сервера – ограничение для отдельных HUB и Edge серверов. Не хранятся в базе данных Active Directory. Устанавливаются командлетом Set-TransportServe. Параметр AttachmentSizeOver устанавливается командлетом Set-TransportRule.
- Ограничения пользователя – применяются к конкретному объекту – почтовому ящику пользователя, группе, контакту и т.п.
Приоритет ограничений
Раз областей действия ограничений несколько, то логично, что применяться они должны в соответствии с определенными правилами. Для лучшего понимания механизма применения ограничений давайте рассмотрим две стандартные ситуации – получение письма из Интернета через Edge сервер и отправку пользователем организации сообщения в Интернет, также через Edge сервер.
Процесс пересылки сообщений
Для начала, напомню процесс получения/отправки сообщений при использовании схемы с Edge сервером. Данный процесс изображен на рис.1:
Рис.1: Процесс пересылки сообщений.
Из рисунка можно сделать вывод, что при получении письмо проходит минимум через три соединителя, ровно как и при отправке. Следовательно, необходимо учитывать ограничения, установленные на всех 3-х соединителях. При этом ещё существуют глобальны ограничения организации и ограничения пользователя.
Порядок применения ограничений при получении сообщения
При получении сообщения сервером Exchange 2010 из сети Интернет, имеет место быть следующий порядок применения ограничений (рис.2):
Рис.2: Порядок применения ограничений при получении сообщения из Интернета.
Примечание: Конфигурация транспорта для Edge сервера и для организации – это разные вещи! В конфигурации транспорта на Edge`e не используются такие параметры как MaxReceiveSize и MaxRecipientEnvelopeLimit (установлены в unlimited), т.к. здесь применяются ограничения соединителей. При этом на соединителе приема не будет отрабатывать ограничение на размер сообщения, т.к. Edge сервер входит в группу ExchangeServers, которая имеет полномочие Ms-Exch-Bypass-Message-Size-Limit, разрешающее прохождение сообщений через соединитель приема без проверки размера сообщения.
Порядок применения ограничений при отправке сообщений
В случае отправки сообщения порядок применения ограничений будет следующим:
Рис.3: Отправка сообщений пользователем организации Exchange в сеть Интернет.
Примечание: Здесь, аналогично процедуре получения сообщений, на Edge сервере не используются параметры MaxReceiveSize и MaxRecipientEnvelopeLimit (установлены в unlimited), т.к. эти фильтры применяются на соответствующих соединителях.
Настройка ограничений
На рис.2 и рис.3 изображены параметры, которые участвуют в фильтрации сообщений, и их значения по умолчанию для сервера Exchange 2010. Для того, чтобы изменить значения по умолчанию, необходимо воспользоваться соответствующими средствами управления.
Организация
Настройки организации можно редактировать как через EMC так и через EMS.
В графической консоли управления, параметры транспорта можно найти на уровне Конфигурирования организации – Транспортный сервер-концентратор – Глобальные параметры – Параметры транспорта (рис.4).
Рис.4: Конфигурирование глобальных транспортных параметров организации.
В PowerShell параметры транспорта можно задать командлетом Set-TransportConfig:
1. Получаем текущие значения:
Get-TransportConfig | fl *size*
2. Изменяем максимальный размер отправляемых сообщений:
Set-TransportConfig –MaxSendSize 20Mb
Рис.5: Конфигурирование глобальных транспортных параметров организации через PowerShell.
Соединители
Для редактирования ограничений на соединителях можно открыть Exchange Management Console – Уровень конфигурирования организации либо Уровень серверов – Транспортный сервер-концентратор – Соединитель … (рис.6):
Рис.6: Управление ограничением размера сообщений на соединителях.
И изменить значение в поле «Максимальный размер сообщения (КБ)».
Либо воспользоваться PowerShell:
1. Получаем список коннекторов:
Get-SendConnector или Get-ReceiveConnector
2. Устанавливаем значения ограничений, например:
Set-SendConnector -Identity <имя_коннектора> -MaxMessageSize <значение, например 20Mb>
Сервер
Настройка конкретных серверов производится командлетом Set-TransportServer с параметрами:
- PickupDirectoryMaxHeaderSize – максимальный размер заголовка сообщения;
- PickupDirectoryMaxRecipientsPerMessage – максимальное количество получателей
Получатель либо отправитель
В данном случае в роли получателя, либо отправителя сообщения может быть любой объект организации с включенной поддержкой почты, например пользователи, группы, контакты и т.п.. В каждом отдельном случае ограничения будут устанавливаться по-разному, но принцип здесь один - в графической консоли подобные настройки делаются в Свойствах объекта, на вкладке Параметры потока почты (рис.7):
Рис.7: Редактирование параметров потока почты для почтового ящика пользователя.
В командной консоли они устанавливаются командлетам Set-Mailbox, -MailUser, -MailContact, -DistributionGroup, -DynamicDistributionGroup, -MailPublicFolder с соответсоответствующими параметрами –MaxReceiveSize, -MaxSendSize, - RecipientLimits, -MaxRecipientPerMessage.
Нюансы
Разобравшись с принципами применения различных фильтров сообщений в организации Exchange, я хочу обратить ваше внимание на несколько нюансов, которые стоит учитывать при настройке ограничений.
Размер сообщения
При входе сообщения в организацию, сервер Exchange рассчитывает общий размер сообщения и записывает его в настраиваемый заголовок в поле
X-MS-Exchange-Organization-OriginalSize
последующие сервера Exchange, участвующие в пересылке, не пересчитывают размер сообщения, а используют значение этого параметра. Здесь нужно понимать, что при «путешествии» сообщения по серверам в организации Exchange его размер может изменяться вследствие преобразования, кодирования, обработки агентами и т.п..
Реальный размер вложения
Следует знать, что при отправке сообщения с вложениями внешнему получателю, сервер Exchange перекодирует его в формат MIME, используя алгоритм Base64. Это приводит к росту размера сообщения примерно на 30%. Данное перекодирование осуществляется по причине того, что стандартное SMTP сообщение может содержать только символы кодовой таблицы US-ASCII, следовательно, любые отличные символы должны быть конвертированы в этот формат.
«Раздувания» сообщений при пересылке между внутренними пользователями организации Exchange не происходит.
Ограничение числа получателей
Ограничение числа получателей на соединителях устанавливается параметром MaxRecipientsPerMessage и по умолчанию ограничивается числом 200. Это означает, что если анонимный отправитель попытается превысить число получателей, то сервер примет сообщение только для первых 200. Но большинство SMTP серверов распознают подобные ограничения и отправляют сообщения группами по 200 получателей.
Ограничение размера вложений в MS Outlook
Иногда, настроек, сделанных на стороне сервера, бывает не достаточно, т.к. сам MS Outlook не хочет прикреплять большие вложения и «радует» пользователя сообщением с рис.8:
Рис.8: Ограничение размера вложений в MS Outlook.
В таком случае, для MS Outlook 2010, необходимо поправить настройки реестра на локальном компьютере пользователя, а именно – создать ключ DWORD с именем MaximumAttachmentSize в ветке
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Preferences
И указать для него значение 0 – для отмены ограничений, либо значение отличное от ноля, в килобайтах (КБ), для установки своих собственных ограничений.
Ограничение в Outlook Web App
Outlook Web App тоже ограничивает размер вложений, по умолчанию это ограничение равно 30 000 КБ. Чтобы изменить эту настройку необходимо открыть файл Web.config, обычно расположенный в c:\Program Files\Microsoft\ExchangeServer\ClientAccess\Owa и найти там строку вида
<httpRuntime maxRequestLength="30000" />
Далее для параметра maxRequestLength необходимо указать свое значение, в килобайтах (КБ).
Заключение
Помните, что если вы планируете вносить изменения в настройки ограничений размера пересылаемых сообщений, то новая схема должна быть хорошо продумана, т.к. неправильные настройки могут привести к серьезному падению производительности ваших транспортных серверов. Завышенные ограничения могут привести к тому, что письма будут проходить внутрь организации и отбрасываться на самых последних стадиях фильтра.
Также стоит понимать, что если ваши внутренние пользователи могут отправлять большие сообщения, то это совсем не означает, что сервер получателя сможет их принять.
В статье рассмотрены две наиболее часто встречающиеся ситуации маршрутизации сообщений. Кроме этих двух случаев у вас может возникнуть необходимость конфигурирования других транспортных потоков в организации, например обмен сообщений между HUB-серверами в рамках одного леса, либо между лесами Active Directory и другие. О них подробнее вы можете почитать в библиотеке TechNet, в статье Управление ограничениями размера сообщения.
39 комментариев:
Добрый день!
Увеличил ограничение до 50000 КБ на EDGE на отправке и получения. Увеличил на HUB, но глобальные настройки не трогал и оставил в 10 МБ. У необходимых пользователей увеличил до 20 МБ. Но при попытке отправить с внешнего ящика 18 МБ приходит авто ответ что лимит превышен и составляет 10 МБ. Отсылал тому пользователю которому увеличил размер в профиле.
Подскажите пожалуйста в чём может быть дело?
Exchange 2010 SP1. TMG 2010 - EDGE + FP 2010 for Exchange - Exchange(все роли).
>глобальные настройки не трогал и оставил в 10 МБ
На рис.2 показано же, что параметры организации тоже участвуют в фильтрации сообщений. Почему вы их не стали редактировать?
PS Письмо должно удовлетворять всем условиям, а не просто пройти через уровень Получатель.
я хочу чтобы у всех пользователей по умолчанию осталось 10 Мб, а для так называемых избранных было бы больше. Например 20 МБ. Так как дискового пространства не хватит для таких ящиков :).
Это возможно сделать?
Вам нужно по-любому делать максимальный размер на всех фильрах 20 Мб, а вот для тех кому вы хотите порезать - 10 Мб. Т.е. идти надо немного с другой стороны.
Здесь проблема в том, что если сейчас всем установить нужный MaxReceiveSise через PowerShell не составляет труда, то вот для всех новых пользователей этот параметр будет по умолчанию unlimited.
Решение данной проблемы я вижу в использовании Cmdlet Extension Agents, а если быть точнее, то Scripting Agent. Попробуйте найти пример использования данной технологии в гугле, если не получиться, то напишите мне на мыло, я вам вышлю ещё не доделанную статью на эту тему, там уже расписан практически такой же пример.
Спасибо Алексей!
Тогда увеличу всем до 20 Мб.
Алексей, ещё вопрос: возможно ли отредактировать тело письма авто ответов? Чтобы например приходило пользователю: Вы превысили допустимы лимит размера сообщения, разбейте письмо на несколько или тому подобное?
Это возможно, но под рукой сейчас ссылки на мануал нет, так что не помогу. Спросите на форуме, уверен, что вам быстро помогут.
Ещё раз спасибо!
Уважаемые коллеги прошу Вас оказать помощь, ситуация следующая: Я отправляю сообщение на группу рассылки (2062 п\я), на модерацию мне приходит 3 запроса на утверждение 2 по 950 получателей и 1 на 67, в настройках транспорта по умолчанию стоит 5000 макс. получателей. edge не используется. Спасибо.
Добрый день. Возник вопрос по соединителю отправки. Не отправляются письма по некоторым адресам. В ответ приходит такое сообщение;
Пользователь mx01.nicmail.ru отклонил ваше сообщение, отправленное на следующие адреса электронной почты:
zakaz@statkod.ru (zakaz@statkod.ru)
mx01.nicmail.ru выдал это сообщение об ошибке:
DerevyankoDU@gletmoscow.com unknown user account
В ходе доставки этого сообщения по указанному адресу электронной почты возникла проблема. Попытайтесь повторно отправить это сообщение. Если проблема будет возникать снова, обратитесь в службу технической поддержки.
Диагностические сведения для администраторов:
Формирующий сервер: GLETSERVER.glet.local
zakaz@statkod.ru
mx01.nicmail.ru #550 DerevyankoDU@gletmoscow.com unknown user account ##
Исходные заголовки сообщения:
Received: from GLETSERVER.glet.local ([fe80::af14:987a:b370:89ec]) by
GLETSERVER.glet.local ([fe80::af14:987a:b370:89ec%10]) with mapi id
14.01.0438.000; Mon, 4 Feb 2013 12:38:25 +0400
From: =?koi8-r?B?5M3J1NLJyiDkxdLF19HOy88=?=
To: "zakaz@statkod.ru"
Subject: test
Thread-Topic: test
Thread-Index: Ac4Csv5QAg41oQV9RGKSmaSO8Yqf/w==
Disposition-Notification-To: =?koi8-r?B?5M3J1NLJyiDkxdLF19HOy88=?=
Date: Mon, 4 Feb 2013 08:38:25 +0000
Message-ID: <5C361B3DA0F82C42846F3F6B7320D8B88A56C6@GLETSERVER.glet.local>
Accept-Language: ru-RU, en-US
Content-Language: ru-RU
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [46.73.7.35]
Content-Type: multipart/alternative;
boundary="_000_5C361B3DA0F82C42846F3F6B7320D8B88A56C6GLETSERVERgletloc_"
MIME-Version: 1.0
Что это может значить? Какие-то настройки не правильные?
Я что-то не могу понять причем тут mx01.nicmail.ru. У вас в свойствах соединителя отправки что в качестве смарт-хоста (вкладка Network)?
Стоит галочка во вкладке Сеть Использовать МХ-записи DNS для автоматической маршрутизации электронной почты
Все, понял, просто у statkod.ru МХ - mx01.nicmail.ru. Вообще странно что он так отвечает. У меня нет готового ответа на этот вопрос (
Я понял. Все равно спасибо. Может я на самом хосте у провайдера не правильно МХ-записи настроил. Но с других почтовиков,типа mail.ru,gmail почта ходит. Если вам не сложно,и,возможно, появится какое-то решение вопроса-ответьте мне на почту derevyankodu@gletmoscow.com
Добрый день Алексей,
перешел с sweb.ru на reg.ru, в настройках указал для mx, mail.нашсайт.com. для А, mail.нашсайт.com. с нашем ip-adress, указал ns-server ns1.hosting.reg.ru. и меня, ns2.hosting.reg.ru., но всё равно почта не работает. Уходит, но не приходит. На сервере, ничего не меня. Reg.ru мне пишет что все правильно, yota тоже. Но так и ничего не работает, sys-admin, у нас нет. За ранее, спасибо. Жан-Мишель
Переписал, а то не совсем по русский))) Добрый день Алексей,
перешел с sweb.ru на reg.ru, в настройках указал для mx, mail.нашсайт.com. для А, mail.нашсайт.com. с нашем ip-adress, указал ns-server ns1.hosting.reg.ru. и ns2.hosting.reg.ru., но всё равно почта не работает. Уходит, но не приходит. На сервере, ничего не менял. Reg.ru мне пишет что все правильно, yota тоже. Но так и ничего не работает, sys-admin, у нас нет. За ранее, спасибо. Жан-Мишель
ping mail.нашсайт.com выдает правильный адрес?
Воспользуйтесь сайтом http://mxtoolbox.com/ для проверки МХ. Если не поможет - пишите мне на электронную почту.
Ответил вам на почту, вы получили?
"На первый взгляд все правильно настроено. Посмотрите, очередь на Exchange`e растет?"
Добрый день, Алексей.
Спасибо вам за замечательные статьи, очень познавательно и полезно :)
Хотел задать вам вопрос по теме этой статьи.
Нам необходимо ограничить размер отправляемых\принимаемых сообщений по группам пользователей.
Например БигБосы 30Мб, ПростоБосы 20Мб, Пользователи 5Мб (Так изъявило желание руководство)
Все доводы по поводу приёма писем другими серверами, а так же по производительности сервера понимаю, но, как говорится, хозяин - барин...
Так вот вопрос как это организовать автоматически, что бы не менять ручками каждого пользователя? Я так понимаю, что отправляющие\принимающие соединители должны быть выставлены по максимальному параметру в 30Мб + 30% на перекодирование сообщений?
А далее, как быть?
Я понимаю, что можно сделать это по выгруженному списку пользователю через PS, но хотелось бы это сделать какими-либо правилами\политиками, если такое вообще возможно.
Буду весьма благодарен, если поможете советом!
Спасибо!
Алексей, посмотрел комментарии и увидел ответ на вопрос. :) Прошу прощения.
Единственное,что хотелось бы увидеть то, о чём вы говорили:
"Решение данной проблемы я вижу в использовании Cmdlet Extension Agents, а если быть точнее, то Scripting Agent. Попробуйте найти пример использования данной технологии в гугле, если не получиться, то напишите мне на мыло, я вам вышлю ещё не доделанную статью на эту тему, там уже расписан практически такой же пример. "
Можно ли и мне получить данное счастье? :)
Думаю, что об этой статье идет речь -
http://www.alexxhost.ru/2011/05/scripting-agents-cmdlet-extension.html
Да!
Огромное спасибо! Буду изучать.
Ещё раз спасибо за замечательный блог, давно почитываю его.
Пусть всегда у вас все получается! :)
Алексей,добрый день, подскажите пожалуйста как сделать переадресацию писем более чем на один ящик? в данный момент переадресация работает с user1 на user2, а нужно добавить к переадресации user3 . exch serv 2010 sp2 переадресация сделана посредством EMC
Объединить пользователей в группу рассылки и сделать переадресацию на группу.
Спосибо болшое. Мне увеличели зарплату за то что я обеснил почему размер писма с вложением увеличевается когда отпровлаем на внешний аддресс а они не могут его получит если даже на транспорте и в ресиве коннкторе настройки должи били ето позволит
Приятно слышать :)
Установлены:
Set-TransportConfig -MaxRecipientEnvelopeLimit 15
Set-ReceiveConnector -Identity "xxx" -MaxRecipientsPerMessage 15
Set-TransportServer -Identity "xxx" -PickupDirectoryMaxRecipientsPerMessage 15
VIP-пользователям установлен атрибут msExchRecipLimit "50"
Теперь ситуация:
VIP отсылает письмо 16-ти получателям. Один из получателей (не VIP) ответом отсылает письмо и письмо уходит :(
Это происходит из-за порядка применения ограничений?
Здравствуйте Алексей.Не могли бы вы подсказать как решить проблему? С Excange 2010 sp3. Проблема такая что Разрешения везде стоят на 50мб на письмо. Отправка с сервера работает на ура, а вот с получением беда, Письма не большого размера принимаются легко но как только отправляешь вложение чуть больше 8мб, письма не доходят до сотрудников. Известно одно, что они точно приходят на сервер Керио control получает письма и отправляет дальше на exchange сервер, но в транспорт лог эксплорер ничего нет пусто.(((
Если в Message tracking логе пусто, то письмо должно быть в SMTP Receive логе на хосте, куда его передал Керио. Оно там есть? Чем SMTP сессия завершается? Queued for delivery?
Нашел данный лог но он не ведется с самой установки сервера, хотя галочка стоит и путь указан. но появилась вот такая информация: имя домена и айпи затер.:
10/24/2015 9:55:20 AM - Remote Server at домен моего сервера (ip моего эксчейндж сервера) returned '550 4.4.7 QUEUE.Expired; message expired'
10/24/2015 9:43:13 AM - Remote Server at имя домена (IP моего Эксчейндж) returned '450 4.4.318 Connection was closed abruptly'
Добрый день! может знает кто... Стоит ограничение по размеру письма в 15 Мб сейчас. Ограничение по количеству получателей письма - 50. Но как совместить два условия на Exch2010 sp3, чтобы при отправке 10-ти получателям допустимый размер вложения ограничивался 1 мегабайтом?
Здравствуйте еще раз в общем более подробно о ситуации
Дано: MS Exchange 2010 sp3 UR8-v2
OS Small business server (192.168.1.100) На базе 2008 сервера определяется операционка как standart 2008 r2 (ad, exchange)
Kerio control порт 25 smtp на входящие открыт установлен на втором терминал сервере ОС 2008 standart r2 (192.168.1.101) маршрут прописан.
Известно: уровень Organization В Hub transport Send connectors выставлено значение на 50мб письма.
Global settings> transport settings выставленно 50мб (51200kb) письма (получение и отправка).
Уровень Server conf. Hub Transport Recive Connectors 50мб
Уровень Recipient configuration>mailbox>mail flow settings 50мб отправка и получение
Команда Get-TransportConfig | fl *size* выдала такую информацию
MaxDumpsterSizePerDatabase : 18 MB (18,874,368 bytes)
MaxReceiveSize : 50 MB (52,428,800 bytes)
MaxSendSize : 50 MB (52,428,800 bytes)
ExternalDsnMaxMessageAttachSize : 33.38 MB (35,000,000 bytes)
InternalDsnMaxMessageAttachSize : 33.38 MB (35,000,000 bytes)
Что могу добавить фаервол письмо пропускает это точно проверено.
Также проверял в обход фаервола и отключенного брэнд мауэра на втором сервере.
Smtp log к сожалению почему то не ведется в нем данные за один день, день когда переустанавливали сервак
почта внутри успешно отправляет и принимает письма размером до 50 мб
если есть идеи подскажите пожалуйста буду рад помощи любому совету
Alex, спасибо за подробное описание, но я не нашел в нем вопроса. Уточните в чем проблема?
Здравствуйте еще раз. я выше на несколько сообщений писал что с внешки на сбс не приходят письма нужного мне обьема. и последним сообщением дополнил картинку.
Добрый день, спасибо за блог и информацию, очень полезно.Разрешите задать сообществу такой вопрос, есть exchange 2010, группа из мак буков с outlook 2016 и стандартным mail от apple.Всё подключается пчта приходит и уходит, календарь работает, всё хорошо до момента отправки вложений, все транспорты настроены на 100 Мб исходящих, в ews конфигурации поправлено на 100 Мб, но письма даже в 500 Кб тупо не уходят, в клиентах появляется ошика с выбором smtp сервера. В логе IIS появляются 500 и 401 ошибка с адресов mас, непонятно куда копать
Добрый день. Какая-то странная сложилась ситуация - конфигурация Edge + HUB. Через оснастку выставляю во всех возможных местах на прием и оправку 40 Мб., проверяю Get-TransportConfig | fl *size*, показывает 40 Мб., но на Edge упорно показывает 10 Мб.
Вопрос: на Edge как-то отдельно назначать надо?
Отправить комментарий