Агенты транспорта позволяют устанавливать специальное программное обеспечение, разработанное Microsoft, сторонними производителями или самой организацией на компьютере с сервером Microsoft Exchange Server 2007. Это программное обеспечение обрабатывает сообщения электронной почты, которые проходят через транспортный конвейер на транспортный сервер-концентратор или пограничный транспортный сервер. Заказные агенты транспорта предоставляют Exchange 2007 дополнительные функциональные возможности, такие, как программы защиты от нежелательной почты и антивирусные программы или любую функцию транспорта, необходимую организации.

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

Внимание!
Агенты транспорта имеют полный доступ ко всем сообщениям электронной почты, обнаруженным ими. Exchange не ограничивает действие агентов транспорта. Нестабильные или содержащие изъяны в безопасности агенты транспорта могут нарушить стабильность и безопасность Exchange. Поэтому устанавливать необходимо только те агенты транспорта, которые заслуживают полного доверия и были испытаны в лабораторной среде.

Дополнительные сведения о создании нового агента транспорта см. в разделе Transport Agents документа «Microsoft Exchange Server 2007 SDK Documentation».

Дополнительные сведения о транспортном конвейере в Exchange 2007 см. в разделе Архитектура транспорта.

Агенты транспорта и события SMTP

Агенты транспорта, созданные для Exchange 2007, используют события SMTP. Такие события возникают при передаче сообщений через транспортный конвейер. События SMTP предоставляют агентам транспорта доступ к сообщениям в особых точках в процессе сеансов связи SMTP и при маршрутизации сообщений через организацию. В таблице 1 приведены события SMTP, которыми предоставляется доступ к сообщениям в транспортном конвейере.

Таблица 1 События SMTP

Последовательность событие SMTP Описание

1

OnConnectEvent

Это событие инициируется первоначальным подключением удаленного узла SMTP.

2

OnHeloCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP HELO.

3

OnEhloCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP EHLO.

4

OnAuthCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP AUTH.

5

OnEndOfAuthentication

Это событие инициируется, когда удаленный узел SMTP завершил проверку подлинности.

6

OnMailCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP MAIL FROM.

7

OnRcptCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP RCPT TO.

8

OnDataCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP DATA.

9

OnEndOfHeaders

Это событие инициируется, когда удаленный узел SMTP завершил передачу заголовков сообщений электронной почты.

10

OnEndOfData

Это событие инициируется, когда удаленный узел SMTP передал <CRLF>.<CRLF>, что означает конец данных.

**

OnHelpCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP HELP. Это событие может возникнуть в любой момент после события SMTP OnConnectEvent и до события SMTP OnDisconnectEvent.

**

OnNoopCommand

Это событие инициируется, когда удаленный узел SMTP передал команду SMTP NOOP. Это событие может возникнуть в любой момент после события SMTP OnConnectEvent и до события SMTP OnDisconnectEvent.

**

OnReject

Это событие инициируется, когда узел-получатель SMTP передал временный или постоянный код уведомления о состоянии доставки узлу-отправителю SMTP. Это событие может возникнуть в любой момент после события SMTP OnConnectEvent и до события SMTP OnDisconnectEvent.

**

OnRsetCommand

Это событие инициируется, когда узел-отправитель SMTP передал команду SMTP RSET. Это событие может возникнуть в любой момент после события SMTP OnConnectEvent и до события SMTP OnDisconnectEvent.

11

OnDisconnectEvent

Это событие инициируется при прекращении сеанса связи SMTP узлом-отправителем или узлом-получателем SMTP.

12

OnSubmittedMessage

Это событие инициируется при передаче сообщения в очереди отправки на узле-получателе SMTP. Это событие инициируется для всех сообщений независимо от способа их передачи: SMTP, MAPI, через каталоги раскладки или преобразования.

13

OnResolvedMessage

Это событие возникает после разрешения всех получателей, но до определения следующего узла в цепочке узлов для каждого получателя. Событие маршрутизации OnResolvedMessage позволяет последующим событиям переопределять способ маршрутизации по умолчанию с помощью метода SetRoutingOverride, выполняемого для отдельных получателей.

Примечание.
Событие маршрутизации OnResolvedMessage доступно только в сервере Exchange 2007 с пакетом обновления 1 (SP1).

14

OnRoutedMessage

Это событие инициируется после завершения классификации сообщений, расширения списков рассылки и разрешения получателей.

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

Для агентов защиты от нежелательных сообщений, помимо допустимости содержимого сообщения, другим важным фактором является точка, в которой действительное нежелательное сообщение было идентифицировано и отклонено. Чем быстрее сообщение было идентифицировано как нежелательное и подлежащее отклонению, тем меньше издержки в организации. Все события SMTP, инициированные прежде события OnEndOfData, не требуют от узла-получателя SMTP создания отчета о недоставке. Отчет о недоставке не создается поскольку все содержимое сообщения не доставляется, пока не произойдет событие OnEndOfData. Поэтому узел-отправитель SMTP по прежнему отвечает за окончательную доставку сообщения. Если сбой доставки узлу-получателю SMTP происходит прежде события OnEndOfData, узел-отправитель SMTP должен отправить отчет о недоставке отправителю сообщения. Событие SMTP OnEndOfData означает, что узел-получатель SMTP принял все содержимое сообщения. Отсюда следует, что теперь этот узел SMTP отвечает за успешную доставку сообщения, создает и отправляет отчет о недоставке отправителю сообщения. Поэтому очень важно, чтобы агент защиты от нежелательных сообщений зарегистрировал себя с событиями SMTP прежде события OnEndOfData для уменьшения вероятности хранения узлом-получателем SMTP содержимого сообщений и необходимости создавать и отправлять отчет о недоставке отправителю сообщения.

Однако для агентов антивирусной защиты самое важное – гарантированное сканирование каждого сообщения. Агенты, которые должны видеть каждое сообщение, должны быть настроены на событие OnSubmittedMessage протокола SMTP. Для каждого сообщения, проходящего через транспортный конвейер, инициируется событие SMTP OnSubmittedMessage, поскольку оно возникает после любой возможной точки входа передачи, например передачи SMTP от удаленных узлов, передачи MAPI от компьютеров, выполняющих роль сервера почтовых ящиков, каталога раскладки, используемого заказными приложениями или каталога преобразования, используемого приложениями электронной почты сторонних производителей.

Назначение приоритетов агентам транспорта

Сервер Exchange 2007 позволяет задавать приоритет агентов транспорта, которые входят в Exchange или добавлены другими приложениями. Если установлен приоритет агента транспорта, можно управлять очередностью применения агентов к сообщению. Агентам транспорта может быть назначен приоритет 1 или выше. Первым к сообщениям применяется агент транспорта, чей приоритет ближе к 1. Однако приоритет, назначенный агенту транспорта, является не единственным фактором, используемым для определения порядка применения агентов транспорта к сообщениям. Вторым фактором, используемым для определения порядка применения агентов транспорта, является точка вхождения события SMTP, с которым зарегистрирован агент транспорта, в последовательность событий SMTP.

Как было показано в приведенной выше таблице 1 данного раздела, события SMTP имеют особую последовательность, в которой они применяются к сообщениям, проходящим через транспортный конвейер. Например, событие OnConnectEvent протокола SMTP всегда возникает прежде событий SMTP OnHeloCommand или OnEhloCommand. Поскольку агенты транспорта зарегистрированы с конкретными событиями SMTP, это означает, что независимо от приоритета, назначенного агенту транспорта события SMTPOnEhloCommand, агенты транспорта, зарегистрированные с событием SMTP OnConnectEvent, будут всегда применяться первыми.

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

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

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

При просмотре списка зарегистрированных агентов с помощью командлета Get-TransportAgent агент транспорта AgentA указывается с более высоким приоритетом чем агент транспорта AgentB. Однако при прохождении сообщения через транспортный конвейер агент транспорта AgentB будет применен к сообщению прежде агента транспорта AgentA поскольку событие SMTP OnMailCommand возникает для сообщения прежде события SMTP OnEndOfHeaders.

Приоритет, назначенный агенту транспорта, становится значимым, когда с одним и тем же событием SMTP зарегистрированы два и больше агентов транспорта. Если агент транспорта AgentA и агент транспорта AgentB зарегистрированы оба с событием SMTP OnEndofHeaders, когда для сообщения возникает это событие, агент транспорта AgentA применяется к этому сообщению перед агентом транспорта AgentB. Если агент транспорта AgentB зарегистрирован с обоими событиями SMTP OnEndOfHeaders и OnMailCommand, он будет применен к этому сообщению два раза. Первым будет применен агент транспорта AgentB, поскольку он зарегистрирован с событием SMTP OnMailCommand. Затем, когда для сообщения возникнет событие SMTP OnEndOfHeaders, с которым зарегистрированы оба агента транспорта AgentA и AgentB, будет применен агент транспорта AgentA, поскольку имеет более высокий приоритет по сравнению с приоритетом агента транспорта AgentB. Наконец, агент транспорта AgentB будет применен второй раз.

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

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

Таблица 2   Агенты транспорта для транспортного сервера-концентратора

Имя агента Приоритет События SMTP Описание

Агент правил транспорта

1

OnRoutedMessage

Обзор правил транспорта

Агент ведения журнала

2

OnSubmittedMessage, OnRoutedMessage

Обзор процедуры ведения журнала

Агент предварительного лицензирования службы управления правами Active Directory (AD RMS)

Примечание.
Агент предварительного лицензирования AD RMS имеется только в сервере Exchange 2007 с пакетом обновления 1 (SP1). По умолчанию он отключен.

3

OnRoutedMessage

Общие сведения об агенте предварительного лицензирования службы управления правами Active Directory

Таблица 3 Агенты транспорта пограничного транспортного сервера

Имя агента Приоритет События SMTP Раздел

Агент фильтрации подключений

1

OnConnectEvent, OnMailCommand, OnRcptComand, OnEndOfHeaders

Фильтрация подключений

Агент перезаписи адресов во входящих сообщениях

2

OnRcptCommand, OnEndOfHeaders

Планирование переопределения адресов

Агент граничного правила

3

OnEndOfData

Обзор правил транспорта

Агент фильтра содержимого

4

OnEndOfData

Фильтрация содержимого

Агент идентификации отправителей

5

OnEndOfHeaders

Код отправителя

Агент фильтра отправителей

6

OnMailCommand, OnEndOfHeaders

Фильтрация отправителя

Агент фильтра получателей

7

OnRcptCommand

Фильтрация получателей

Агент анализа протокола

8

OnEndOfHeaders, OnEndOfData, OnReject, OnRsetCommand, OnDisconnectEvent

Управление ведением журнала протокола

Агент фильтрации вложений

9

OnEndOfData

Фильтрация вложений

Агент перезаписи адресов в исходящих сообщениях

10

OnRcptCommand, OnEndOfHeaders

Планирование переопределения адресов

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

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

  • Командлет Get-TransportPipeline   Командлет Get-TransportPipeline отображает все включенные агенты транспорта и те события SMTP, с которыми они зарегистрированы, и которые возникают для сообщений в транспортном конвейере в период времени с момента запуска транспортной службы Microsoft и до момента выполнения командлета. Дополнительные сведения см. в разделе Инструкции по просмотру агентов передачи в транспортном конвейере.

    Примечание.
    Сведения, отображаемые командлетом Get-TransportPipeline, создаются только после прохождения сообщения через транспортный конвейер. Кроме того, отображаются только те агенты транспорта, которые обрабатывали сообщение.
  • Конвейерная трассировка   Конвейерная трассировка позволяет создавать точный снимок всего сообщения до и после его обработки каждым агентом транспорта. Конвейерная трассировка позволяет определить агент транспорта, выдающий непредвиденный результат, или убедиться, что агент транспорта функционирует надлежащим образом. Дополнительные сведения см. в разделе Использование конвейерной трассировки для диагностики неисправностей агентов транспорта.

Дополнительные сведения

Дополнительные сведения об агентах транспорта см. в следующих разделах: