Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Exchange Server 2013
Агенты транспорта позволяют установить пользовательское программное обеспечение, созданное корпорацией Майкрософт, сторонними поставщиками или специалистами вашей организации, на сервер Exchange. Это программное обеспечение может обрабатывать сообщения электронной почты, которые проходят через транспортный конвейер. В Microsoft Exchange Server 2013 транспортный конвейер состоит из следующих процессов:
интерфейсная транспортная служба на серверах клиентского доступа;
транспортная служба на серверах почтовых ящиков;
транспортная служба почтовых ящиков на серверах почтовых ящиков;
транспортная служба на пограничных транспортных серверах.
Дополнительные сведения о транспортном конвейере см. в разделе Поток обработки почты.
Как и в предыдущих версиях Exchange, транспорт Exchange 2013 обеспечивает расширяемость посредством агентов транспорта пакета SDK Microsoft Exchange Server 2013. Версия пакета SDK для Exchange 2013 основана на Microsoft платформа .NET Framework версии 4.0 и позволяет сторонним компаниям реализовывать следующие предопределенные классы:
SmtpReceiveAgent
RoutingAgent
DeliveryAgent
После подчинения библиотекам в SDK получившиеся сборки регистрируются в Exchange 2013, который загружает агентов и вызывает обработчиков событий во время определенных стадий SMTP сессий или обработки сообщений. Эти стадии, или события, являются частью определений агентов. Регистрационные данные агента хранятся в файле конфигурации XML.
В следующем списке описываются требования для использования агентов транспорта в Exchange 2013.
Транспортная служба на серверах почтовых ящиков и пограничных транспортных серверах полностью поддерживает все предопределенные классы в пакете SDK, поэтому все сторонние транспортные агенты, написанные для ролей транспортного сервера-концентратора или пограничного транспортного сервера в Microsoft Exchange Server 2010, должны работать в транспортной службе в Exchange 2013.
Служба транспорта переднего плана поддерживает в пакете SDK только класс SmtpReceiveAgent , и сторонние агенты не могут работать с событием SMTP OnEndOfData .
Служба транспортировки почтовых ящиков вообще не поддерживает пакет SDK, поэтому вы не можете использовать сторонние агенты в службе транспортировки почтовых ящиков.
Поддержка устаревших транспортных агентов на базе версий .NET Framework до версии 4.0 по умолчанию не включена, но ее можно включить. Инструкции см. в разделе "Включение поддержки устаревших транспортных агентов".
Обновления для службы управления агентами транспорта
Из-за обновлений транспортного конвейера Exchange 2013 командлеты транспортного агента должны различать транспортную службу и службу транспортного переднего плана, особенно если сервер клиентского доступа и сервер почтовых ящиков установлены на одном компьютере. Дополнительные сведения см. в разделе Управление транспортными агентами.
Командлеты управления транспортным агентом управляют файлом конфигурации, расположенным в .%ExchangeInstallPath%TransportRoles\Shared Для транспортной службы на серверах почтовых ящиков и пограничных транспортных серверах файл имеет вид agents.config. Для службы транспорта переднего плана на серверах клиентского доступа файл имеет вид fetagents.config. Оба файла имеют тот же формат, что и в Exchange 2010. Дополнительные сведения об управлении транспортными агентами см. в разделе Управление транспортными агентами.
Агенты транспорта и события SMTP
Агенты транспорта используют события SMTP. Такие события возникают при передаче сообщений через транспортный конвейер. События SMTP предоставляют агентам транспорта доступ к сообщениям в особых точках в процессе сеансов связи SMTP и при маршрутизации сообщений через организацию.
Обратите внимание, что в Exchange 2013 появились новые события SMTP Receive. Они существуют в интерфейсной транспортной службе на серверах клиентского доступа, транспортной службе на серверах почтовых ящиков и пограничных транспортных серверах, а также в транспортной службе для доставки почты в почтовый ящик на серверах почтовых ящиков. Классификатор существует только в транспортной службе на серверах почтовых ящиков и пограничных транспортных серверах. Дополнительные сведения о транспортных услугах и категоризаторе см. в разделе Маршрутизация почты.
В следующих таблицах приведены события SMTP, предоставляющие доступ к сообщениям в конвейере транспорта.
События приема SMTP
| Sequence | событие SMTP | Описание |
|---|---|---|
| 1 | OnConnectEvent | Это событие инициируется первоначальным подключением удаленного узла SMTP. |
| 2 | OnHeloCommand | Это событие инициируется, когда HELO команда отдается удаленным SMTP-узлом. |
| 3 | OnEhloCommand | Это событие инициируется, когда EHLO команда отдается удаленным SMTP-узлом. |
| 4 | OnStartTlsCommand | Это событие инициируется, когда STARTTLS команда отдается удаленным SMTP-узлом. |
| 5 | Команда OnAuthCommand | Это событие инициируется, когда AUTH команда отдается удаленным SMTP-узлом. |
| 6 | Проверка подлинности OnProcessAuthentication | Это событие инициируется, когда выполняется обработка проверки подлинности с помощью удаленного узла SMTP. |
| 7 | OnEndOfAuthentication | Это событие инициируется, когда удаленный узел SMTP завершил проверку подлинности. |
| 8 | OnXSessionParamsCommand | Это событие инициируется, когда XSESSIONPARAMS команда отдается удаленным SMTP-узлом. |
| 9 | OnMailCommand | Это событие инициируется, когда MAIL FROM команда отдается удаленным SMTP-узлом. |
| 10 | OnRcptToCommand | Это событие инициируется, когда RCPT TO команда отдается удаленным SMTP-узлом. |
| 11 | Команда OnDataCommand | Это событие запускается, когда DATA удаленный SMTP-узел отдает команду (текст) или BDAT (двоичные данные). |
| 12 | OnEndOfHeaders | Это событие инициируется, когда удаленный узел SMTP завершает передачу заголовков сообщений электронной почты. На это указывает пустая строка (<CRLF>), отделяющая заголовки сообщений от основного текста сообщения. |
| 13 | OnProxyInboundMessage | Это событие инициируется, когда входящий сеанс SMTP ретранслируется или передается через прокси-сервер службой транспорта переднего плана на сервере клиентского доступа в службу транспорта на сервере почтовых ящиков. |
| 14 | OnEndOfData | Это событие инициируется, когда удаленный узел SMTP передает команду окончания данных. Для текстовых сеансов, начатых командой DATA , индикатор окончания данных равен <CRLF>.<CRLF>. Для двоичных сеансов, запущенных командой BDAT , индикатор окончания данных равен BDAT LAST. |
| ** | OnHelpCommand | Это событие срабатывает, HELP если команда отдана удаленным SMTP-узлом. |
| ** | Команда OnNoopCommand | Это событие срабатывает, NOOP если команда отдана удаленным SMTP-узлом. |
| ** | НаОтклонить | Это событие инициируется, если узел-получатель SMTP передает временный или постоянный код уведомления о доставке (DSN) узлу-отправителю SMTP. |
| ** | OnRsetCommand | Это событие срабатывает, RSET если команда отдается отправляющим SMTP-хостом. |
| 15 | OnDisconnectEvent | Это событие инициируется при прекращении сеанса связи SMTP узлом-отправителем или узлом-получателем SMTP. Как правило, это происходит, когда QUIT команда выдается удаленным SMTP-узлом. |
** Эти события могут возникать в любое время между событиями OnConnectEvent и OnDisconnectEvent.
Классификатор событий
| Sequence | событие SMTP | Описание |
|---|---|---|
| 1 | OnSubmittedMessage | Это событие инициируется, когда сообщение попадает в очередь передачи в службе транспорта на принимающем сервере почтовых ящиков или пограничном транспортном сервере. |
| 2 | OnResolvedMessage | Это событие возникает после разрешения всех получателей, но до определения следующего перехода для каждого получателя. Событие маршрутизации OnResolvedMessage позволяет последующим событиям переопределять способ маршрутизации по умолчанию с помощью метода SetRoutingOverride, выполняемого для отдельных получателей. |
| 3 | OnRoutedMessage | Это событие инициируется после завершения классификации сообщений, расширения списков рассылки и разрешения получателей. |
| 4 | Сообщение OnCategorizedMessage | Это событие инициируется, когда классификатор завершает обработку сообщения. |
Приоритет агентов транспорта
Порядок действия агентов транспорта на сообщения в транспортном конвейере определяют два фактора:
Событие SMTP, в котором зарегистрирован агент транспорта, и момент, когда такое событие SMTP обнаруживает сообщения.
Значение приоритета, назначенное агенту транспорта, если в одном событии SMTP зарегистрировано несколько агентов. Самый высокий приоритет 1. Чем больше значение, тем ниже приоритет агента.
Например, предположим, что настроены следующие агенты транспорта:
В событии SMTP OnEndOfHeaders зарегистрированы агент транспорта А с приоритетом 1 и агент транспорта В с приоритетом 2.
В событии SMTP OnMailCommand зарегистрирован агент транспорта Б с приоритетом 4.
Сначала к сообщениям применяется агент транспорта Б, так как событие OnMailCommand обнаруживает сообщения раньше, чем событие OnEndOfHeaders. Когда сообщения достигают события OnEndOfHeaders, сначала применяется агент транспорта А, а затем В, так как у первого из них приоритет выше (целое значение меньше).
Встроенные агенты транспорта
Exchange 2013 включает множество встроенных агентов транспорта, которые обеспечивают такие функции, как защита от нежелательной почты, правила транспорта и ведение журнала. Большинство встроенных агентов транспорта на серверах почтовых ящиков и серверах клиентского доступа Exchange 2013 недоступны командлетам управления агентами транспорта и не могут контролироваться с их помощью. Практически все видимые и управляемые встроенные агенты транспорта находятся в транспортной службе на серверах почтовых ящиков и пограничных транспортных серверах.
Более интересные встроенные агенты транспорта на серверах почтовых ящиков описаны в таблице ниже. Обратите внимание, что в таблицу не включены многие невидимые агенты транспорта, которыми невозможно управлять.
Интересные встроенные агенты транспорта на серверах почтовых ящиков
| Имя агента | Управляемость | Priority | События SMTP или классификатора |
|---|---|---|---|
| Агент правил транспорта | Да | 1 | OnResolvedMessage |
| Агент защиты от вредоносных программ | Да | 2 | OnSubmittedMessage |
| Агент маршрутизации обмена текстовыми сообщениями | Да | 3 | OnSubmittedMessage |
| Агент доставки обмена текстовыми сообщениями | Да | 4 | Недоступно |
| Агент ведения журнала | Нет | Не настраивается | OnRoutedMessage |
| Агент расшифровки отчетов журнала | Нет | Не настраивается | Сообщение OnCategorizedMessage |
| Агент расшифровки RMS | Нет | Не настраивается | OnSubmittedMessage |
| Агент шифрования RMS | Нет | Не настраивается |
OnSubmittedMessage OnRoutedMessage |
| Агент расшифровки протокола RMS | Нет | Не настраивается | OnEndOfData |
На пограничных транспортных серверах большинство встроенных агентов транспорта доступны для командлетов агентов транспорта и других командлетов и могут контролироваться с их помощью.
Другие интересные встроенные агенты транспорта на пограничных транспортных серверах описаны в таблице ниже. Обратите внимание, что в таблицу не включены невидимые агенты транспорта, которыми невозможно управлять.
Интересные встроенные агенты транспорта на пограничных транспортных серверах
| Имя агента | Управляемость | Priority | События SMTP или классификатора |
|---|---|---|---|
| Агент фильтрации подключений | Да | 1 |
OnConnectEvent OnMailCommand OnRcptComand OnEndOfHeaders |
| Агент переопределения адресов входящих сообщений | Да | 2 |
OnRcptComand OnEndOfHeaders |
| Агент пограничных правил | Да | 3 | OnEndOfData |
| Агент фильтра содержимого* | Да | 4 | OnEndOfData |
| Агент идентификации отправителей* | Да | 5 | OnEndOfHeaders |
| Агент фильтра отправителей* | Да | 6 |
OnMailCommand OnEndOfHeaders |
| Агент фильтра получателей | Да | 7 | OnRcptCommand |
| Агент анализа протоколов* | Да | 8 |
OnConnectEvent OnEndOfHeaders OnEndOfData НаОтклонить OnRsetCommand OnDisconnectEvent |
| Агент фильтрации вложений | Да | 9 | OnEndOfData |
| Агент переопределения адресов исходящих сообщений | Да | 10 |
OnSubmittedMessage OnRoutedMessage |
* Кроме того, агенты защиты от нежелательной почты можно установить и настроить на серверах почтовых ящиков. Дополнительные сведения см. в статье "Включение защиты от спама на серверах почтовых ящиков".
Устранение неполадок агентов транспорта
Устранить неполадки агентов транспорта можно с помощью следующих функций:
Get-TransportPipeline: этот командлет показывает события SMTP и соответствующие транспортные агенты, которые обнаруживают сообщения на сервере Exchange. Дополнительные сведения см. в разделе Просмотр транспортных агентов в транспортном конвейере.
Трассировка конвейера: Трассировка конвейера создает точное snapshot сообщения до и после его встречи с каждым транспортным агентом. Это позволяет обнаружить агент транспорта, который приводит к неожиданным результатам. Дополнительные сведения см. в разделе Трассировка конвейера.