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:
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 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 | Sí | 1 | OnResolvedMessage |
Agente de malware | Sí | 2 | OnSubmittedMessage |
Agente de enrutamiento de mensajes de texto | Sí | 3 | OnSubmittedMessage |
Agente de entrega de mensajes de texto | Sí | 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 | Sí | 1 |
OnConnectEvent OnMailCommand OnRcptComand OnEndOfHeaders |
Agente de reescritura de direcciones entrantes | Sí | 2 |
OnRcptComand 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 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.