Introducción a los agentes de transporte

 

Se aplica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Última modificación del tema: 2007-07-17

Los agentes de transporte permiten instalar software creado por Microsoft, por terceros o por la propia organización, en un equipo que ejecute Microsoft Exchange Server 2007. Este software puede procesar mensajes de correo electrónico que pasen por el canal de transporte de un servidor de transporte perimetral o de un servidor de transporte perimetral. Los agentes de transporte personalizados ofrecen más funcionalidades a Exchange 2007, como programas contra correo electrónico no deseado o programas antivirus que puede necesitar la organización.

Los agentes de transporte se suelen instalar automáticamente como parte integrante de las aplicaciones diseñadas para funcionar conjuntamente con Exchange 2007. Sin embargo, una organización podría querer desarrollar sus propios agentes de transporte para administrar el correo que fluye a través de su organización de Exchange 2007.

Advertencia

Los agentes de transporte tienen acceso completo a todos los mensajes de correo electrónico que encuentran. Exchange no impone restricción alguna al comportamiento de los agentes de transporte. Los agentes de transporte que no son estables o tienen defectos de seguridad pueden afectar a la estabilidad y la seguridad de Exchange. Por tanto, sólo se deben instalar agentes de transporte en los que se confía totalmente y que han sido probados completamente en un entorno de prueba.

Para obtener información acerca de cómo escribir un agente de transporte nuevo, vea Transport Agents en "Microsoft Exchange Server 2007 SDK Documentation" (en inglés).

Para obtener más información acerca del canal de transporte en Exchange 2007, vea Arquitectura de transporte (enn inglés).

Agentes de transporte y eventos SMTP

Los agentes de transporte escritos para Exchange 2007 utilizan eventos del Protocolo simple de transferencia de correo (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 Tabla 1 incluye los eventos SMTP que proporcionan acceso a los mensajes en el canal de transporte:

Tabla 1   Eventos SMTP

Secuencia Evento SMTP Descripción

1

OnConnectEvent

Este evento se desencadena en la conexión inicial desde un host SMTP remoto.

2

OnHeloCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP HELO.

3

OnEhloCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP EHLO.

4

OnAuthCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP AUTH.

5

OnEndOfAuthentication

Este evento se desencadena cuando el host SMTP remoto ha completado la autenticación.

6

OnMailCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP MAIL FROM.

7

OnRcptCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP RCPT TO.

8

OnDataCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP DATA.

9

OnEndOfHeaders

Este evento se desencadena cuando el host SMTP remoto ha completado el envío de encabezados de mensajes de correo electrónico.

10

OnEndOfData

Este evento se desencadena cuando el host SMTP remoto emite <CRLF>.<CRLF>, lo cual indica el fin de los datos.

**

OnHelpCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP HELP. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent.

**

OnNoopCommand

Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP NOOP. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent.

**

OnReject

Este evento se desencadena cuando 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. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent.

**

OnRsetCommand

Este evento se desencadena cuando el host SMTP emisor emite el verbo SMTP RSET. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent.

11

OnDisconnectEvent

Este evento se desencadena cuando el host SMTP emisor o de recepción se desconecta de la conversación SMTP.

12

OnSubmittedMessage

Este evento se desencadena cuando se envía un mensaje a las colas de envío del host SMTP de recepción. Los mensajes que lleguen a través de envío SMTP, MAPI o a través de los directorios Pickup y Replay encontrarán este evento.

13

OnResolvedMessage

Este evento se desencadena una vez se hayan 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.

Nota

El evento de enrutamiento OnResolvedMessage se encuentra disponible únicamente en el Service Pack 1 (SP1) de Exchange 2007.

14

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.

Los agentes de transporte se pueden registrar en cualquiera de los eventos SMTP incluidos en la Tabla 1; sin embargo, la acción para la que se creó el agente de transporte suele dictar los eventos SMTP sobre los que se ejecutará.

Para los agentes contra correo electrónico no deseado, la consideración más importante, además de la validez de los contenidos del mensaje, es el punto en el que se identifica y rechaza un mensaje de correo electrónico no deseado válido. Cuanto antes se rechace un mensaje que se ha confirmado como no deseado, menor será el coste para la organización. Los eventos SMTP que se desencadenan antes del evento SMTP OnEndOfData no necesitan que el host SMTP de recepción genere un informe de no entrega (NDR). No se genera un informe de no entrega porque el contenido completo del mensaje no se entrega antes de que se alcance el evento SMTP OnEndOfData. Por tanto, el host SMTP emisor es todavía responsable de la entrega final del mensaje. Si no se produce la entrega al host SMTP de recepción antes del evento SMTP OnEndOfData, el host SMTP remitente debe generar el informe de no entrega al emisor del mensaje. Después de alcanzar el evento SMTP OnEndOfData, el host SMTP de recepción ha aceptado el contenido completo del mensaje. Esto significa que el host SMTP tiene ahora la responsabilidad de entregar el mensaje y de generar y enviar un informe de no entrega al remitente del mensaje. Por tanto, es crucial que un agente contra correo electrónico no deseado se registre en los eventos SMTP antes de que se alcance el evento OnEndOfData para reducir la posibilidad de que el host SMTP de recepción almacene el contenido de un mensaje y tenga que generar un informe de no entrega al remitente.

Por otro lado, para los agentes antivirus, la consideración más importante es asegurarse de que se examinan todos los mensajes. Los agentes que deben examinar todos los mensajes tienen que estar configurados en el evento OnSubmittedMessage. Los mensajes que fluyen a través del canal de transporte encuentran el evento SMTP OnSubmittedMessage porque éste tiene lugar después de todos los puntos de entrada de envío, como el envío SMTP desde host remotos, envíos MAPI desde equipos que ejecutan la función del servidor Buzón de correo, el directorio Pickup que utilizan las aplicaciones personalizadas, o el directorio Replay que utilizan las aplicaciones de correo electrónico de terceros.

Priorización de agentes de transporte

Exchange 2007 permite especificar la prioridad de los agentes de transporte incluidos en Exchange y que agregan las aplicaciones personalizadas. Especificar la prioridad de un agente de transporte permite controlar qué agentes actúan en primer lugar en un mensaje. A los agentes de transporte se les puede asignar una prioridad de 1 o superior. Los agentes de transporte que tengan una prioridad más cercana a 1 se aplicarán en primer lugar a los mensajes. Sin embargo, la prioridad que se asigna a un agente de transporte es tan sólo uno de los factores que se utilizan para determinar el orden en el que los agentes de transporte se aplican a los mensajes. El segundo factor que se utiliza para determinar la prioridad de los agentes de transporte es dónde se ajusta el evento SMTP que tiene un agente de transporte registrado en la secuencia de eventos SMTP.

Como se muestra en la Tabla 1 de este tema, los eventos SMTP tienen una secuencia específica mediante la cual se aplican a los mensajes que fluyen a través del canal de transporte. Por ejemplo, el evento SMTP OnConnectEvent siempre ocurre antes de los eventos SMTP OnHeloCommand o OnEhloCommand. El que los agentes de transporte se registren en eventos SMTP específicos significa que, independientemente de la prioridad que se asigne a un agente de transporte en el evento SMTP OnEhloCommand, los agentes de transporte registrados en el evento SMTP OnConnectEvent SMTP siempre se aplicarán en primer lugar a los mensajes.

Por ejemplo, los agentes de transporte podrían tener la siguiente configuración:

  • Agente de transporte AgenteA con una prioridad de 1 registrado en el evento SMTP OnEndofHeaders

  • Agente de transporte AgenteB con una prioridad de 4 registrado en el evento SMTP OnMailCommand

Si se utiliza el cmdlet Get-TransportAgent para ver la lista de agentes registrados, el agente de transporte AgenteA aparecerá con una prioridad más alta que el agente de transporte AgenteB. Sin embargo, cuando un mensaje fluye a través del canal de transporte, el agente de transporte AgenteB se aplicará al mensaje antes que el agente de transporte AgenteA; esto se debe a que el evento SMTP OnMailCommand encuentra el mensaje antes que el evento SMTP OnEndOfHeaders.

La prioridad que se asigna a un agente de transporte será relevante cuando dos o más agentes de transporte estén registrados en el mismo evento SMTP. Si los agentes de transporte AgenteA y AgenteB están registrados en el evento SMTP OnEndofHeaders, cuando un mensaje encuentra dicho evento, el agente de transporte AgenteA se aplica al mensaje antes que el agente de transporte AgenteB. Si el agente de transporte AgenteB está registrado en los eventos SMTP OnEndOfHeaders y OnMailCommand, se aplicará al mensaje dos veces. El agente de transporte AgenteB se aplicará en primer lugar porque está registrado en el evento SMTP OnMailCommand. De este modo, cuando el mensaje encuentra el evento SMTP OnEndOfHeaders en el que los agentes de transporte AgenteA y AgenteB están registrados, se aplicará el agente de transporte AgenteA al tener una prioridad más alta que el agente de transporte AgenteB. Finalmente, el agente de transporte AgenteB se aplicará por segunda vez.

Agentes de transporte integrados

Exchange 2007 incluye varios agentes de transporte predeterminados que lo habilitan para proporcionar diversas funciones, como las reglas de transporte y de registro en diario. De manera predeterminada, los agentes de transporte enumerados en las siguientes tablas están instalados en los servidores de transporte perimetral y de transporte perimetral. Las siguientes tablas también contienen temas con más información sobre cada agente.

Tabla 2   Agentes de transporte de servidores de transporte perimetral

Nombre del agente Prioridad Eventos SMTP Descripción

Agente de regla de transporte

1

OnRoutedMessage

Introducción a las reglas de transporte

Agente de registro en diario

2

OnSubmittedMessage, OnRoutedMessage

Introducción al registro en diario

Agente de licencia previa de servicios de administración de derechos de Active Directory (AD RMS)

Nota

El agente de licencia previa de AD RMS únicamente se encuentra disponible en Exchange 2007 SP1. Se encuentra deshabilitado de forma predeterminada.

3

OnRoutedMessage

Descripción del agente de licencia previa de AD RMS

Tabla 3   Agentes de transporte de servidores de transporte perimetral

Nombre del agente Prioridad Eventos SMTP Tema relacionado

Agente de filtro de conexión

1

OnConnectEvent, OnMailCommand, OnRcptComand, OnEndOfHeaders

Filtrado de la conexión

Agente de reescritura de direcciones entrantes

2

OnRcptCommand, OnEndOfHeaders

Diseño de reescritura de direcciones

Agente Regla perimetral

3

OnEndOfData

Introducción a las reglas de transporte

Agente de filtro de contenido

4

OnEndOfData

Filtrado de contenido

Agente de Id. de remitente

5

OnEndOfHeaders

Id. del remitente

Agente de filtro de remitentes

6

OnMailCommand, OnEndOfHeaders

Filtrado de remitentes

Agente de filtro de destinatarios

7

OnRcptCommand

Filtrado de destinatarios

Agente de análisis de protocolo

8

OnEndOfHeaders, OnEndOfData, OnReject, OnRsetCommand, OnDisconnectEvent

Administrar el registro de protocolo

Agente de filtro de documentos adjuntos

9

OnEndOfData

Filtrado de datos adjuntos

Agente de reescritura de direcciones salientes

10

OnRcptCommand, OnEndOfHeaders

Diseño de reescritura de direcciones

Agentes de transporte de solución de problemas

Con los agentes de transporte, Exchange ayuda a controlar el flujo de mensajes de correo electrónico a través de la organización. Esto permite adaptar la infraestructura de Exchange a los requisitos de la organización, no al revés. A medida que se personaliza el entorno, su complejidad aumenta. Para solucionar los problemas que puedan ocurrir y comprobar que los cambios se aplican a los mensajes como se esperaba, Exchange incluye las siguientes características:

  • CmdletGet-TransportPipeline   El cmdlet Get-TransportPipeline muestra todos los agentes de transporte habilitados, y aquellos eventos SMTP en los que se han registrado, que han encontrado mensajes en el canal de transporte entre la hora en la que comenzó el servicio de transporte de Microsoft y la hora a la que se ejecutó el cmdlet. Para obtener más información, vea Cómo ver los agentes de transporte en la ruta de transporte (en inglés).

    Nota

    La información que muestra el cmdlet Get-TransportPipeline sólo se genera después de que un mensaje se haya enviado a través del canal de transporte. Además, sólo se muestran los agentes de transporte que han encontrado el mensaje.

  • Seguimiento de conductos  El seguimiento de conductos permite crear una instantánea exacta de un mensaje antes y después de que encuentre a los canales de transporte. El seguimiento de conductos habilita al usuario para que pueda determinar qué agente de transporte puede haber generado resultados no esperados, o para comprobar que el agente de transporte se comporta correctamente. Para obtener más información, vea Utilización del seguimiento de conductos para diagnosticar problemas del agente de transporte (en inglés).

Información adicional

Para obtener más información acerca de los agentes de transporte, vea los siguientes temas (en inglés):