Agentes de transporte en Exchange Server
Los agentes de transporte permiten instalar software personalizado creado por Microsoft, por otros proveedores o por una organización en un servidor Exchange. A continuación, el software procesa los mensajes de correo electrónico que pasan por la canalización de transporte. En Microsoft Exchange Server 2016 o 2019, la canalización de transporte se realiza de los siguientes procesos:
- El servicio de transporte front-end en servidores de buzones
- Servicio de transporte en servidores de buzones de correo
- Servicio de transporte de buzones en servidores de buzones de correo
- Servicio de transporte en servidores de transporte perimetral
Para obtener más información sobre la canalización de transporte, vea Flujo de correo y la canalización de transporte.
El transporte de Exchange proporciona extensibilidad a través del SDK de agentes de transporte de Microsoft Exchange Server. La versión de Exchange del SDK permite a terceros implementar las siguientes clases predefinidas:
- SmtpReceiveAgent
- RoutingAgent
- DeliveryAgent
Cuando se cumplen con las bibliotecas del SDK, los ensamblados resultantes se registran con Exchange, que carga los agentes e invoca sus controladores de eventos durante fases específicas de las sesiones SMTP o el procesamiento de mensajes. Estas etapas o eventos forman parte de las definiciones de agentes. La información del registro de agentes se almacena en un archivo de configuración XML.
En la lista siguiente se explican los requisitos para usar agentes de transporte en Exchange.
- El servicio de transporte en los servidores de buzones de correo y los servidores de transporte perimetral admite completamente todas las clases predefinidas en el SDK.
- El servicio de transporte front-end solo admite la clase SmtpReceiveAgent en el SDK y los agentes de terceros no pueden funcionar en el evento SMTP OnEndOfData .
- El servicio de transporte de buzones no admite el SDK en absoluto, por lo que no puede usar ningún agente de terceros en el servicio de transporte de buzones.
Administración del agente de transporte
Los cmdlets del agente de transporte deben distinguir entre el servicio de transporte y el servicio de transporte front-end. Los cmdlets de administración del Agente de transporte manipulan el archivo agents.config
de configuración ubicado en %ExchangeInstallPath%TransportRoles\Shared
.
Para obtener más información, consulte Administración de agentes de transporte en Exchange Server.
Agentes de transporte y eventos SMTP
Los agentes de transporte utilizan eventos SMTP. Estos eventos se desencadenan a medida que los mensajes se desplazan por el canal de transporte. Los eventos SMTP dan a los agentes de transporte acceso a los mensajes en puntos específicos durante la conversación SMTP y durante el enrutamiento de los mensajes por la organización.
La recepción SMTP existe en el servicio de transporte front-end en los servidores de buzones de correo, el servicio de transporte en los servidores de buzones y los servidores de transporte perimetral y el servicio de entrega de transporte de buzones en los servidores de buzones. El categorizador existe solo en el servicio de transporte en servidores de buzones de correo y servidores de transporte perimetral. Para obtener más información sobre los servicios de transporte y el categorizador, vea Enrutamiento de correo en Exchange Server.
La tabla siguiente incluye los eventos SMTP que proporcionan acceso a los mensajes en la canalización de transporte.
Eventos de recepción SMTP
Secuencia | Evento SMTP | Descripción |
---|---|---|
1 | OnConnectEvent | La conexión inicial desencadena este evento desde un host SMTP remoto. |
2 | OnHeloCommand | Este evento se desencadena cuando el host SMTP remoto emite el HELO comando. |
3 | OnEhloCommand | Este evento se desencadena cuando el host SMTP remoto emite el EHLO comando. |
4 | OnStartTlsCommand | Este evento se desencadena cuando el host SMTP remoto emite el STARTTLS comando. |
5 | OnAuthCommand | Este evento se desencadena cuando el host SMTP remoto emite el AUTH comando. |
6 | OnProcessAuthentication | Este evento se desencadena cuando se procesa la autenticación con el host SMTP remoto. |
7 | OnEndOfAuthentication | Este evento se desencadena cuando el host SMTP remoto ha completado la autenticación. |
8 | OnXSessionParamsCommand | Este evento se desencadena cuando el host SMTP remoto emite el XSESSIONPARAMS comando. |
9 | OnMailCommand | Este evento se desencadena cuando el host SMTP remoto emite el MAIL FROM comando. |
10 | OnRcptToCommand | Este evento se desencadena cuando el host SMTP remoto emite el RCPT TO comando. |
11 | OnDataCommand | Este evento se desencadena cuando el host SMTP remoto emite el DATA comando (texto) o BDAT (datos binarios). |
12 | OnEndOfHeaders | Este evento se desencadena cuando el host SMTP remoto ha completado el envío de encabezados de mensajes de correo electrónico. Esto se indica mediante una línea en blanco (<CRLF> ) que separa los encabezados del mensaje y el cuerpo del mensaje. |
13 | OnProxyInboundMessage | Este evento se desencadena cuando el servicio de transporte front-end retransmite o proxy una sesión SMTP entrante al servicio de transporte en un servidor de buzones. |
14 | OnEndOfData | Este evento se desencadena cuando el host SMTP remoto emite un comando de fin de datos:
|
** | OnHelpCommand | Este evento se desencadena si el host SMTP remoto emite el HELP comando. |
** | OnNoopCommand | Este evento se desencadena si el host SMTP remoto emite el NOOP comando. |
** | OnReject | Este evento se desencadena si el host SMTP receptor emite una notificación de estado de entrega temporal o permanente (también conocida como DSN, informe de no entrega, NDR o mensaje de devolución) al host SMTP de envío. |
** | OnRsetCommand | Este evento se desencadena si el host SMTP de envío emite el RSET comando . |
15 | OnDisconnectEvent | Este evento se desencadena cuando el host SMTP de envío o de recepción se desconecta de la conversación SMTP. Normalmente, esto sucede cuando el host SMTP remoto emite el QUIT comando. |
** Estos eventos pueden producirse en cualquier momento después de OnConnectEvent pero antes de OnDisconnectEvent.
Eventos de categorizador
Secuencia | Evento de categorizador | Descripción |
---|---|---|
1 | OnSubmittedMessage | Este evento se desencadena cuando llega un mensaje a la cola envío en el servicio de transporte en el servidor exchange receptor. |
2 | OnResolvedMessage | Este evento se desencadena una vez que se han resuelto todos los destinatarios pero antes de que se determine el siguiente salto para cada uno de ellos. El evento de enrutamiento OnResolvedMessage permite que los eventos de enrutamiento posteriores invaliden el comportamiento de enrutamiento predeterminado mediante la utilización del método por destinatario SetRoutingOverride. |
3 | OnRoutedMessage | Este evento se desencadena una vez que los mensajes se han categorizado, las listas de distribución se han expandido y se han resuelto los destinatarios. |
4 | OnCategorizedMessage | Este evento se desencadena cuando el categorizador finaliza el procesamiento del mensaje. |
Prioridad de los agentes de transporte
Dos factores determinan el orden en que los agentes de transporte actúan en los mensajes de la canalización de transporte:
- El evento SMTP en el que se registra el agente de transporte y cuando el evento SMTP encuentra mensajes.
- El valor de prioridad que se asigna al agente de transporte si hay varios agentes registrados en el mismo evento SMTP. La prioridad más alta es 1. Un valor entero más alto indica una prioridad de agente más baja.
Por ejemplo, supongamos que configuró los siguientes agentes de transporte:
- El agente de transporte A con una prioridad de 1 y el agente de transporte C con una prioridad de 2 están registrados en el evento SMTP OnEndOfHeaders.
- El agente de transporte B con una prioridad de 4 está registrado en el evento SMTP OnMailCommand.
El agente de transporte B se aplica primero a los mensajes porque el evento OnMailCommand encuentra mensajes antes del evento OnEndOfHeaders. Cuando los mensajes alcanzan el evento OnEndOfHeaders, el agente de transporte A se aplica antes del agente de transporte C porque el agente de transporte A tiene mayor prioridad (valor entero más bajo) que el agente de transporte C.
Agentes de transporte integrados
Exchange Server incluye muchos agentes de transporte integrados que proporcionan características como el correo no deseado, las reglas de transporte y el registro en diario. La mayoría de los agentes de transporte integrados en los servidores de buzones de correo de Exchange son invisibles y los cmdlets de administración de agentes de transporte no pueden administrarlos. Prácticamente todos los agentes de transporte integrados que son visibles y administrables se encuentran en el servicio de transporte en servidores de buzones y servidores de transporte perimetral.
Los agentes de transporte integrados más interesantes de los servidores de buzones de correo se describen en la tabla siguiente. Tenga en cuenta que esta tabla no incluye muchos de los agentes de transporte invisibles que no se pueden administrar.
Agentes de transporte integrados interesantes en servidores de buzones de correo
Nombre del agente | ¿Fácil de administrar? | Prioridad | Eventos del categorizador o SMTP |
---|---|---|---|
Agente de regla de transporte | Sí | 1 | OnResolvedMessage |
Agente de directiva DLP | Sí | 2 | OnResolvedMessage |
Agente de directiva de retención | Yes | 3 | OnResolvedMessage |
Agente de revisión de supervisión | Yes | 4 | OnResolvedMessage |
Agente de malware | Sí | 5 | OnSubmittedMessage |
Agente de enrutamiento de mensajes de texto | Sí | 6 | OnSubmittedMessage |
Agente de entrega de mensajes de texto | Sí | 7 | No aplicable |
Eliminación del agente smtp del sondeo del sistema | Sí | 8 | OnEndOfHeaders |
Agente de enrutamiento de eliminación de sondeo del sistema | Sí | 9 | OnCategorizedMessage |
Agente de registro en diario | No | No configurable | OnRoutedMessage |
Agente de descifrado de informes de diario | No | No configurable | OnCategorizedMessage |
Agente de descifrado de RMS | No | No configurable | OnSubmittedMessage |
Agente de cifrado de RMS | No | No configurable | OnSubmittedMessage OnRoutedMessage |
Agente de descifrado de protocolo RMS | No | No configurable | OnEndOfData |
Agentes de transporte integrados interesantes en servidores de transporte perimetral
En los servidores de transporte perimetral, la mayoría de los agentes de transporte integrados son visibles y se pueden administrar mediante cmdlets de administración de agentes de transporte u otros cmdlets específicos para las funciones.
Los agentes de transporte integrados más interesantes de los servidores de transporte perimetral se describen en la tabla siguiente. Tenga en cuenta que esta tabla no incluye los agentes de transporte invisibles ni los que no se pueden administrar.
Nombre del agente | ¿Fácil de administrar? | Prioridad | Eventos del categorizador o SMTP |
---|---|---|---|
Agente de filtro de conexión | Sí | 1 | OnConnectEvent OnMailCommand OnRcptCommand OnEndOfHeaders |
Agente de reescritura de direcciones entrantes | Sí | 2 | OnRcptCommand OnEndOfHeaders |
Agente de regla perimetral | Sí | 3 | OnEndOfData |
Agente de filtro de contenido* | Sí | 4 | OnEndOfData |
Agente de identificador de remitente* | Sí | 5 | OnEndOfHeaders |
Agente de filtro de remitentes* | Sí | 6 | OnMailCommand OnEndOfHeaders |
Agente de filtro de destinatarios | Sí | 7 | OnRcptCommand |
Agente de análisis de protocolo* | Sí | 8 | OnConnectEvent OnEndOfHeaders OnEndOfData OnReject OnRsetCommand OnDisconnectEvent |
Agente de filtro de datos adjuntos | Sí | 9 | OnEndOfData |
Agente de reescritura de direcciones salientes | Sí | 10 | OnSubmittedMessage OnRoutedMessage |
* También puede instalar y configurar estos agentes contra correo no deseado en los servidores de buzones de correo. Para obtener más información, consulte Habilitar la funcionalidad contra correo electrónico no deseado en servidores de buzón.
Solución de problemas de los agentes de transporte
Como ayuda para solucionar problemas con los agentes de transporte, puede usar las siguientes funciones:
Get-TransportPipeline: este cmdlet muestra los eventos SMTP y los agentes de transporte correspondientes que encuentran mensajes en el servidor exchange. Para obtener más información, vea Ver agentes de transporte en la canalización de transporte en Exchange Server.
Seguimiento de canalizaciones: el seguimiento de canalizaciones crea una instantánea exacta de un mensaje antes y después de encontrar cada agente de transporte. Esto le permite encontrar un agente de transporte que está provocando resultados inesperados. Para más información, vea Seguimiento del canal.