Agentes de transporte

Se aplica a: Exchange Server 2013

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 2013, la canalización de transporte consta de los siguientes procesos:

  • Servicio de transporte front-end en servidores de acceso de cliente

  • 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.

Al igual que en la versión anterior de Exchange, el transporte de Exchange 2013 proporciona extensibilidad mediante el SDK de agentes de transporte de Microsoft Exchange Server 2013. La versión de Exchange 2013 del SDK se basa en la versión 4.0 de Microsoft .NET Framework y permite a terceros implementar las siguientes clases predefinidas:

  • SmtpReceiveAgent

  • RoutingAgent

  • DeliveryAgent

Cuando se comprueba la compatibilidad con las bibliotecas del SDK, los ensamblados resultantes se registran en Exchange 2013, que carga los agentes e invoca a sus controladores de eventos durante etapas específicas del procesamiento de mensajes o sesiones SMTP. 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.

La siguiente lista explica los requisitos para usar agentes de transporte en Exchange 2013.

  • El servicio de transporte en servidores de buzones de correo y los servidores de transporte perimetral son totalmente compatibles con todas las clases predefinidas del SDK y, por tanto, los agentes de transporte de terceros escritos para los roles de servidor transporte de concentrador o transporte perimetral en Microsoft Exchange Server 2010 deben funcionar en el servicio de transporte en Exchange 2013.

  • 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.

La compatibilidad con agentes de transporte anteriores basados en versiones de .NET Framework previas a la versión 4.0 no está habilitada de manera predeterminada, pero se puede habilitar. Para obtener instrucciones, vea Habilitar la compatibilidad para agentes de transporte heredados.

Actualizaciones para la administración de agentes de transporte

Debido a las actualizaciones realizadas en la canalización de transporte de Exchange 2013, los cmdlets de los agentes de transporte deben distinguir entre el servicio de transporte y el servicio de transporte front-end, especialmente si los servidores de acceso de cliente y de buzones de correo están instalados en el mismo equipo. Para obtener más información, vea Administrar agentes de transporte.

Los cmdlets de administración del Agente de transporte manipulan un archivo de configuración ubicado en %ExchangeInstallPath%TransportRoles\Shared. Para el servicio de transporte en servidores de buzones de correo y servidores de transporte perimetral, el archivo es agents.config. Para el servicio de transporte front-end en los servidores de acceso de cliente, el archivo es fetagents.config. Ambos archivos utilizan el mismo formato que en Exchange 2010. Para obtener más información sobre la administración de los agentes de transporte, vea Administrar agentes de transporte.

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.

Observe que hay eventos de recepción SMTP nuevos en Exchange 2013. La recepción de SMTP existe en el servicio de transporte perimetral en los servidores de acceso de cliente, el servicio de transporte en servidores de buzones de correo y servidores de transporte perimetral y el servicio de entrega de transporte de buzones en los servidores de buzones de correo. El categorizador existe solo en el servicio de transporte en servidores de buzones de correo y servidores de transporte perimetral. Para más información sobre los servicios de transporte y el categorizador, vea Enrutamiento de correo.

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 envía por proxy una sesión SMTP entrante en un servidor de acceso de cliente al servicio de transporte de un servidor de buzones de correo.
14 OnEndOfData Este evento se desencadena cuando el host SMTP remoto emite un comando de fin de datos. Para las sesiones de texto iniciadas por el DATA comando, el final del indicador de datos es <CRLF>.<CRLF>. Para las sesiones binarias iniciadas por el BDAT comando, el final del indicador de datos es BDAT LAST.
** 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 de recepción emite un código de notificación de estado de entrega (DSN) temporal o permanente al host SMTP emisor.
** 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 SMTP Descripción
1 OnSubmittedMessage Este evento se desencadena cuando un mensaje llega en la cola de envío en el servicio de transporte en el servidor de buzones de correo de recepción o el servidor de transporte perimetral.
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

Hay dos factores que determinan el orden en el que actúan los agentes de transporte en los mensajes en la canalización de transporte:

  1. El evento SMTP en el que se registra el agente de transporte y cuando el evento SMTP encuentra mensajes.

  2. 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 2013 incluye muchos agentes de transporte integrados que proporcionan características como la función contra correo no deseado, reglas de transporte y registro en diario. La mayoría de los agentes de transporte integrados en los servidores de buzones de correo y los servidores de acceso de cliente de Exchange 2013 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 se pueden administrar están en el servicio de transporte en los servidores de buzones de correo y en los 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 1 OnResolvedMessage
Agente de malware 2 OnSubmittedMessage
Agente de enrutamiento de mensajes de texto 3 OnSubmittedMessage
Agente de entrega de mensajes de texto 4 n/d
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

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.

Agentes de transporte integrados interesantes en servidores de transporte perimetral

Nombre del agente ¿Fácil de administrar? Prioridad Eventos del categorizador o SMTP
Agente de filtro de conexión 1 OnConnectEvent
OnMailCommand
OnRcptComand
OnEndOfHeaders
Agente de reescritura de direcciones entrantes 2 OnRcptComand
OnEndOfHeaders
Agente de regla perimetral 3 OnEndOfData
Agente de filtro de contenido* 4 OnEndOfData
Agente de identificador de remitente* 5 OnEndOfHeaders
Agente de filtro de remitentes* 6 OnMailCommand
OnEndOfHeaders
Agente de filtro de destinatarios 7 OnRcptCommand
Agente de análisis de protocolo* 8 OnConnectEvent
OnEndOfHeaders
OnEndOfData
OnReject
OnRsetCommand
OnDisconnectEvent
Agente de filtro de datos adjuntos 9 OnEndOfData
Agente de reescritura de direcciones salientes 10 OnSubmittedMessage
OnRoutedMessage

* También puede instalar y configurar estos agentes contra correo no deseado en los servidores de buzones de correo. Para más información, vea Habilitar la funcionalidad contra correo electrónico no deseado en un servidor Buzón de correo.

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 más información, vea Ver agentes de transporte en la canalización de transporte.

  • 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.