Compartilhar via


Visão geral de agentes de transporte

 

Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Tópico modificado em: 2007-07-17

Os agentes de transporte permitem instalar software personalizado, criado pela Microsoft, por fornecedores terceirizados ou por sua organização, em um computador que está executando o Microsoft Exchange Server 2007. Esse software, então, pode processar mensagens de email transmitidas pelo pipeline de transporte em um servidor de Transporte de Hub ou de Transporte de Borda. Os agentes de transporte personalizados oferecem funcionalidades adicionais ao Exchange 2007, como programas antivírus ou anti-spam, ou qualquer função de transporte de que sua organização possa precisar.

Os agentes de transporte são normalmente instalados de forma automática como parte dos aplicativos que são projetados para funcionar juntos com o Exchange 2007. Contudo, pode haver casos em que organizações optem por desenvolver os próprios agentes de transporte para gerenciar os emails que fluem por suas organizações do Exchange 2007.

Aviso

Os agentes de transporte têm acesso total a todas as mensagens de email que encontrarem. O Exchange não atribui restrições ao comportamento do agente de transporte. Os agentes de transporte instáveis ou que contêm falhas de segurança podem afetar a estabilidade e a segurança do Exchange. Por isso, você deve instalar apenas os agentes de transporte nos quais confia plenamente e que foram amplamente testados em um ambiente de teste.

Para obter informações sobre como gravar um novo agente de transporte, consulte Agentes de Transporte na "Documentação do Microsoft Exchange Server 2007 SDK" (página em inglês).

Para obter mais informações sobre o pipeline de transporte no Exchange 2007, consulte Arquitetura de Transporte.

Agentes de transporte e eventos SMTP

Os agentes de transporte gravados no Exchange 2007 usam eventos SMTP. Esses eventos são acionados à medida que as mensagens são movidas através do pipeline de transporte. Os eventos SMTP fornecem aos agentes de transporte acesso a mensagens em pontos especíificos durante a conversa SMTP e durante o roteamento de mensagens em toda a organização. A Tabela 1 lista os eventos SMTP que fornecem acesso a mensagens no pipeline de transporte:

Tabela 1   Eventos SMTP

Seqüência Evento SMTP Descrição

1

OnConnectEvent

Esse evento é acionado na conexão inicial a partir de um host SMTP remoto.

2

OnHeloCommand

Esse evento é acionado quando o verbo SMTP HELO é emitido pelo host SMTP remoto.

3

OnEhloCommand

Esse evento é acionado quando o verbo SMTP EHLO é emitido pelo host SMTP remoto.

4

OnAuthCommand

Esse evento é acionado quando o verbo SMTP AUTH é emitido pelo host SMTP remoto.

5

OnEndOfAuthentication

Esse evento é acionado quando o host SMTP remoto conclui a autenticação.

6

OnMailCommand

Esse evento é acionado quando o verbo SMTP MAIL FROM é emitido pelo host SMTP remoto.

7

OnRcptCommand

Esse evento é acionado quando o verbo SMTP RCPT TO é emitido pelo host SMTP remoto.

8

OnDataCommand

Esse evento é acionado quando o verbo SMTP DATA é emitido pelo host SMTP remoto.

9

OnEndOfHeaders

Esse evento é acionado quando o host SMTP remoto conclui o envio dos cabeçalhos de mensagem de email.

10

OnEndOfData

Esse evento é acionado quando o host SMTP remoto emite <CRLF>.<CRLF>, o que indica o fim dos dados.

**

OnHelpCommand

Esse evento é acionado quando o verbo SMTP HELP é emitido pelo host SMTP remoto. Esse evento pode ocorrer a qualquer momento depois do evento SMTP OnConnectEvent e antes do evento SMTP OnDisconnectEvent.

**

OnNoopCommand

Esse evento é acionado quando o verbo SMTP NOOP é emitido pelo host SMTP remoto. Esse evento pode ocorrer a qualquer momento depois do evento SMTP OnConnectEvent e antes do evento SMTP OnDisconnectEvent.

**

OnReject

Esse evento é acionado quando o host SMTP de recebimento emite um código de notificação de status de entrega (DNS) temporária ou permanente ao host SMTP de envio. Esse evento pode ocorrer a qualquer momento depois do evento SMTP OnConnectEvent e antes do evento SMTP OnDisconnectEvent.

**

OnRsetCommand

Esse evento é acionado quando o verbo SMTP RSET é emitido pelo host SMTP de envio. Esse evento pode ocorrer a qualquer momento depois do evento SMTP OnConnectEvent e antes do evento SMTP OnDisconnectEvent.

11

OnDisconnectEvent

Esse evento é acionado quando a conversa SMTP é desconectada por um host SMTP de recebimento ou envio.

12

OnSubmittedMessage

Esse evento é acionado quando uma mensagem é enviada para as filas Envio no host SMTP de recebimento. Todas as mensagens encontrarão esse evento, se chegarem através do envio SMTP, do envio MAPI ou dos Diretórios de recebimento ou de repetição.

13

OnResolvedMessage

Este evento é acionado depois que todos os destinatários são resolvidos mas antes que o próximo salto seja determinado para cada destinatário. O evento de roteamento OnResolvedMessage permite que eventos subseqüentes substituam o comportamento de roteamento padrão usando o método SetRoutingOverride por destinatário.

Dica

O evento de roteamento OnResolvedMessage está disponível apenas no Exchange 2007 Service Pack 1 (SP1).

14

OnRoutedMessage

Esse evento é acionado depois que as mensagens forem categorizadas, que as listas de distribuição forem expandidas e que os destinatários forem resolvidos.

Os agentes de transporte podem ser registrados em qualquer um dos eventos SMTP listados na Tabela 1. No entanto, a ação pretendida do agente de transporte sempre dita os eventos SMTP que serão executados.

Para agentes anti-spam, a consideração mais importante, diferente da validade do conteúdo da mensagem, é o ponto em que uma mensagem válida de spam é identificada e rejeitada. Quanto mais cedo a mensagem confirmada como spam for rejeitada, tanto menor será o custo para a sua empresa. Todos os eventos SMTP acionados antes de OnEndOfData não exigem que um recibo de NDR (falha na entrega) seja gerado pelo host SMTP de recebimento. Uma NDR não é gerada, porque o conteúdo completo da mensagem não é fornecido antes que o evento SMTP OnEndOfData seja atingido. Assim, o host SMTP de envio continua responsável pela entrega final da mensagem. Se houver falha na entrega para o host SMTP de recebimento antes do evento SMTP OnEndOfData, o host SMTP de envio deve gerar a NDR para o remetente da mensagem. Depois que o evento SMTP OnEndOfData for atingido, o host SMTP de recebimento aceitou todo o conteúdo da mensagem. Isso significa que o host SMTP agora tem a responsabilidade de fornecer a mensagem com sucesso, gerar e enviar uma NDR ao remetente da mensagem. Por isso, é muito importante que um agente anti-spam se registre nos eventos SMTP antes que o evento OnEndOfData seja atingido, para reduzir a possibilidade de o host SMTP de recebimento armazenar o conteúdo da mensagem e ter que gerar uma NDR para o remetente da mensagem.

No entanto, para agentes antívirus, a consideração mais importante é ter certeza de que todas as mensagens foram verificadas. Os agentes devem verificar se cada uma das mensagens deve ser configurada no evento SMTP OnSubmittedMessage. Cada mensagem transmitida pelo pipeline de transporte encontra o evento SMTP OnSubmittedMessage, porque ele ocorre depois de todos os possíveis pontos de entrada de envio, como o envio SMTP de hosts remotos, o envio MAPI de computadores que estão executando a função de servidor Caixa de Correio, o Diretório de recebimento, usado por aplicativos personalizados, ou o Diretório de repetição, usado por aplicativos de email de terceiros.

Priorização de agentes de transporte

O Exchange 2007 permite especificar a prioridade dos agentes de transporte incluídos no Exchange e adicionados por aplicativos personalizados. Se você especificar a prioridade de um agente de transporte, poderá controlar os agentes que agirão primeiro em uma mensagem. Os agentes de transporte podem ter atribuída uma prioridade 1 ou superior. Os agentes de transporte com prioridade próxima a 1 são aplicados às mensagens primeiro. Contudo, a prioridade que você atribuiu a um agente de transporte é apenas um fator usado para determinar a ordem em que os agentes de transporte são aplicados às mensagens. O segundo fator usado para determinar a prioridade dos agentes de transporte é o local em que o evento SMTP, que possui um agente de transporte registrado, se encaixa na seqüência dos eventos SMTP.

Como mostra a Tabela 1 anteriormente neste tópico, os eventos SMTP possuem uma seqüência específica, usada para aplicá-los às mensagens transferidas pelo pipeline de transporte. Por exemplo, o evento SMTP OnConnectEvent sempre ocorre antes dos eventos SMTP OnHeloCommand ou OnEhloCommand. Devido ao registro dos agentes de transporte em eventos SMTP específicos, isso significa que, independentemente da prioridade atribuída a um agente de transporte no evento SMTP OnEhloCommand, os agentes de transporte registrados no evento SMTP OnConnectEvent sempre serão aplicados primeiro às mensagens.

Por exemplo, você também deve ter os agentes de transporte configurados da seguinte forma:

  • O agente de transporte AgentA com uma prioridade 1 registrado no evento SMTP OnEndofHeaders

  • O agente de transporte AgentB com uma prioridade 4 registrado no evento SMTP OnMailCommand

Quando você exibir sua lista de agentes registrados, usando o cmdlet Get-TransportAgent, o agente de transporte AgentA estará listado com uma prioridade mais alta do que a do agente de transporte AgentB. Contudo, quando uma mensagem é transmitida pelo pipeline de transporte, o agente de transporte AgentB será aplicado à mensagem antes do agente de transporte AgentA, porque o evento SMTP OnMailCommand encontra a mensagem antes do evento SMTP OnEndOfHeaders.

A prioridade atribuída ao agente de transporte se torna relevante quando dois ou mais agentes de transporte são registrados no mesmo evento SMTP. Se o agente de transporte AgentA e o agente de transporte AgentB estiverem registrados no evento SMTP OnEndofHeaders, quando uma mensagem encontrar esse evento, o agente de transporte AgentA será aplicado à mensagem antes do agente de transporte AgentB. Se o agente de transporte AgentB estiver registrado nos eventos SMTP OnEndOfHeaders e OnMailCommand, ele será aplicado à mensagem duas vezes. O agente de transporte AgentB será aplicado primeiro, porque está registrado no evento SMTP OnMailCommand. Em seguida, quando a mensagem encontrar o evento SMTP OnEndOfHeaders no local em que ambos os agentes de transporte AgentA e AgentB estão registrados, o agente de transporte AgentA será aplicado, porque tem uma prioridade mais alta do que o agente de transporte AgentB. Por fim, o agente de transporte AgentB será aplicado pela segunda vez.

Agentes de transporte internos

O Exchange 2007 inclui vários agentes de transporte padrão que permitem a ele fornecer recursos, como regras de transporte e registro no diário. Por padrão, os agentes de transporte listados nas tabelas a seguir são instalados nos servidores de Transporte de Hub e de Transporte de Borda. As tabelas a seguir também fornecem tópicos que contêm mais informações sobre cada agente.

Tabela 2   Agentes de transporte do servidor de Transporte de Hub

Nome do Agente Prioridade Eventos SMTP Descrição

Agente de Regras de Transporte

1

OnRoutedMessage

Visão geral de regras de transporte

Agente Registro no diário

2

OnSubmittedMessage, OnRoutedMessage

Visão geral do Registro no Diário

Agente de Pré-licenciamento de RMS (Rights Management Services) do Active Directory

Dica

O agente de Pré-licenciamento de AD RMS está disponível apenas no Exchange 2007 SP1. Ele é desabilitado por padrão.

3

OnRoutedMessage

Compreendendo o agente de Pré-licenciamento de RMS do AD

Tabela 3   Agentes de transporte do servidor de Transporte de Borda

Nome do Agente Prioridade Eventos SMTP Tópico Relacionado

Agente de Filtragem de Conexão

1

OnConnectEvent, OnMailCommand, OnRcptComand, OnEndOfHeaders

Filtragem de Conexão

Agente de Entrada de Reconfiguração de Endereço

2

OnRcptCommand, OnEndOfHeaders

Planejando reconfiguração de endereço

Agente de Regra de Borda

3

OnEndOfData

Visão geral de regras de transporte

Agente de Filtro de Conteúdo

4

OnEndOfData

Filtragem de Conteúdo

Agente de ID de Remetente

5

OnEndOfHeaders

ID de Remetente

Agente de Filtro por Remetente

6

OnMailCommand, OnEndOfHeaders

Filtragem por Remetente

Agente de Filtro de Destinatários

7

OnRcptCommand

Filtragem por Destinatário

Agente de Análise de Protocolo

8

OnEndOfHeaders, OnEndOfData, OnReject, OnRsetCommand, OnDisconnectEvent

Gerenciando log do protocolo

Agente de Filtragem de Anexo

9

OnEndOfData

Filtragem de anexos

Agente de Saída de Reconfiguração de Endereço

10

OnRcptCommand, OnEndOfHeaders

Planejando reconfiguração de endereço

Solução de problemas dos agentes de transporte

Com os agentes de transporte, o Exchange ajudará a controlar o fluxo de mensagens de email em sua organização. Isso permite combinar a infra-estrutura do Exchange às necessidades de sua organização, em vez de forçar sua organização a corresponder à infra-estrutura de email. Quando personalizado, a complexidade do ambiente aumenta. Para ajudá-lo a solucionar possíveis problemas e verificar se as alterações foram aplicadas às mensagens da forma prevista, o Exchange oferece os seguintes recursos:

  • cmdlet Get-TransportPipeline   O cmdlet Get-TransportPipeline mostra todos os agentes de transporte habilitados, e os eventos SMTP em que estão registrados, que encontraram mensagens no pipeline de transporte entre o momento em que o serviço de Transporte do Microsoft foi iniciado e o momento em que o cmdlet foi executado. Para obter mais informações, consulte Como exibir Agentes de Transporte no pipeline de transporte.

    Dica

    As informações exibidas pelo cmdlet Get-TransportPipeline são geradas apenas depois que uma mensagem tiver sido enviada pelo pipeline de transporte. Além disso, os agentes de transporte que encontraram a mensagem são exibidos.

  • **Rastreamento de Pipeline **  O rastreamento de pipeline permite que você crie um instantâneo de uma mensagem inteira antes e depois de encontrar cada agente de transporte. O rastreamento de pipeline permite que você determine o agente de transporte que pode ter gerado resultados inesperados ou para verificar se o agente de transporte apresenta um comportamento esperado. Para obter mais informações, consulte Usando o rastreamento de pipeline para diagnosticar problemas do agente de Transporte.

Para obter mais informações

Para obter mais informações sobre agentes de transporte, consulte os tópicos a seguir: