Агенты транспорта

Область применения: 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.

  • Служба внешнего транспорта поддерживает только класс SmtpReceiveAgent в пакете SDK, а сторонние агенты не могут работать с событием 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. Они существуют в интерфейсной транспортной службе на серверах клиентского доступа, транспортной службе на серверах почтовых ящиков и пограничных транспортных серверах, а также в транспортной службе для доставки почты в почтовый ящик на серверах почтовых ящиков. Классификатор существует только в транспортной службе на серверах почтовых ящиков и пограничных транспортных серверах. Дополнительные сведения о транспортных службах и классификаторе см. в разделе Маршрутизация почты.

В следующих таблицах приведены события 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 выдает команду (text) или BDAT (двоичные данные).
12 OnEndOfHeaders Это событие инициируется, когда удаленный узел SMTP завершает передачу заголовков сообщений электронной почты. На это указывает пустая строка (<CRLF>), разделяющая заголовки сообщения и текст сообщения.
13 OnProxyInboundMessage Это событие инициируется, когда входящий сеанс SMTP ретранслируется или передается через прокси-сервер службой транспорта переднего плана на сервере клиентского доступа в службу транспорта на сервере почтовых ящиков.
14 OnEndOfData Это событие инициируется, когда удаленный узел SMTP передает команду окончания данных. Для текстовых сеансов, запускаемых командой DATA , конец индикатора данных — <CRLF>.<CRLF>. Для двоичных сеансов, запускаемых командой BDAT , конец индикатора данных — BDAT LAST.
** OnHelpCommand Это событие активируется, HELP если команда выдана удаленным узлом SMTP.
** OnNoopCommand Это событие активируется, NOOP если команда выдана удаленным узлом SMTP.
** OnReject Это событие инициируется, если узел-получатель 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 Это событие инициируется, когда классификатор завершает обработку сообщения.

Приоритет агентов транспорта

Порядок действия агентов транспорта на сообщения в транспортном конвейере определяют два фактора:

  1. Событие SMTP, в котором зарегистрирован агент транспорта, и момент, когда такое событие SMTP обнаруживает сообщения.

  2. Значение приоритета, назначенное агенту транспорта, если в одном событии SMTP зарегистрировано несколько агентов. Самый высокий приоритет — 1. Чем больше значение, тем ниже приоритет агента.

Например, предположим, что настроены следующие агенты транспорта:

  • В событии SMTP OnEndOfHeaders зарегистрированы агент транспорта А с приоритетом 1 и агент транспорта В с приоритетом 2.

  • В событии SMTP OnMailCommand зарегистрирован агент транспорта Б с приоритетом 4.

Сначала к сообщениям применяется агент транспорта Б, так как событие OnMailCommand обнаруживает сообщения раньше, чем событие OnEndOfHeaders. Когда сообщения достигают события OnEndOfHeaders, сначала применяется агент транспорта А, а затем — В, так как у первого из них приоритет выше (целое значение меньше).

Встроенные агенты транспорта

Exchange 2013 включает множество встроенных агентов транспорта, которые обеспечивают такие функции, как защита от нежелательной почты, правила транспорта и ведение журнала. Большинство встроенных агентов транспорта на серверах почтовых ящиков и серверах клиентского доступа Exchange 2013 недоступны командлетам управления агентами транспорта и не могут контролироваться с их помощью. Практически все видимые и управляемые встроенные агенты транспорта находятся в транспортной службе на серверах почтовых ящиков и пограничных транспортных серверах.

Более интересные встроенные агенты транспорта на серверах почтовых ящиков описаны в таблице ниже. Обратите внимание, что в таблицу не включены многие невидимые агенты транспорта, которыми невозможно управлять.

Интересные встроенные агенты транспорта на серверах почтовых ящиков

Имя агента Управляемость Приоритет События SMTP или классификатора
Агент правил транспорта Да 1 OnResolvedMessage
Агент защиты от вредоносных программ Да 2 OnSubmittedMessage
Агент маршрутизации обмена текстовыми сообщениями Да 3 OnSubmittedMessage
Агент доставки обмена текстовыми сообщениями Да 4 Недоступно
Агент ведения журнала Нет Не настраивается OnRoutedMessage
Агент расшифровки отчетов журнала Нет Не настраивается OnCategorizedMessage
Агент расшифровки RMS Нет Не настраивается OnSubmittedMessage
Агент шифрования RMS Нет Не настраивается OnSubmittedMessage
OnRoutedMessage
Агент расшифровки протокола RMS Нет Не настраивается OnEndOfData

На пограничных транспортных серверах большинство встроенных агентов транспорта доступны для командлетов агентов транспорта и других командлетов и могут контролироваться с их помощью.

Другие интересные встроенные агенты транспорта на пограничных транспортных серверах описаны в таблице ниже. Обратите внимание, что в таблицу не включены невидимые агенты транспорта, которыми невозможно управлять.

Интересные встроенные агенты транспорта на пограничных транспортных серверах

Имя агента Управляемость Приоритет События SMTP или классификатора
Агент фильтрации подключений Да 1 OnConnectEvent
OnMailCommand
OnRcptComand
OnEndOfHeaders
Агент переопределения адресов входящих сообщений Да 2 OnRcptComand
OnEndOfHeaders
Агент пограничных правил Да 3 OnEndOfData
Агент фильтра содержимого* Да 4 OnEndOfData
Агент идентификации отправителей* Да 5 OnEndOfHeaders
Агент фильтра отправителей* Да 6 OnMailCommand
OnEndOfHeaders
Агент фильтра получателей Да 7 OnRcptCommand
Агент анализа протоколов* Да 8 OnConnectEvent
OnEndOfHeaders
OnEndOfData
OnReject
OnRsetCommand
OnDisconnectEvent
Агент фильтрации вложений Да 9 OnEndOfData
Агент переопределения адресов исходящих сообщений Да 10 OnSubmittedMessage
OnRoutedMessage

* Вы также можете установить и настроить эти агенты защиты от нежелательной почты на серверах почтовых ящиков. Дополнительные сведения см. в разделе Включение функций защиты от нежелательной почты на серверах почтовых ящиков.

Устранение неполадок агентов транспорта

Устранить неполадки агентов транспорта можно с помощью следующих функций:

  • Get-TransportPipeline: этот командлет показывает события SMTP и соответствующие агенты транспорта, которые сталкиваются с сообщениями на сервере Exchange Server. Дополнительные сведения см. в разделе Просмотр агентов транспорта в конвейере транспорта.

  • Трассировка конвейера. Трассировка конвейера создает точный моментальный снимок сообщения до и после обнаружения каждого агента транспорта. Это позволяет обнаружить агент транспорта, который приводит к неожиданным результатам. Дополнительные сведения см. в разделе Трассировка конвейера.