Agentes de transporte em Exchange Server
Os agentes de transporte permitem instalar um software personalizado criado pela Microsoft, por fornecedores de terceiros ou por sua organização, em um servidor do Exchange. Esse software pode processar mensagens de email que passam pelo pipeline de transporte. Em Microsoft Exchange Server 2016 ou 2019, o pipeline de transporte é feito dos seguintes processos:
- O serviço de transporte front-end em servidores de caixa de correio
- O serviço de transporte em servidores de caixa de correio
- O serviço transporte de caixa de correio em servidores de caixa de correio
- O serviço de transporte em servidores de transporte de borda
Para obter mais informações sobre o pipeline de transporte, consulte Fluxo de email e o pipeline de transporte
O transporte exchange fornece extensibilidade por meio do SDK dos Agentes de Transporte Microsoft Exchange Server. A versão do Exchange do SDK permite que terceiros implementem as seguintes classes predefinidas:
- SmtpReceiveAgent
- RoteamentoAgent
- DeliveryAgent
Quando cumpridos em relação a bibliotecas no SDK, os assemblies resultantes são registrados com o Exchange, que carrega os agentes e invoca seus manipuladores de eventos durante estágios específicos das sessões SMTP ou processamento de mensagens. Esses estágios ou eventos fazem parte das definições do agente. As informações de registro do agente são armazenadas em um arquivo de configuração XML.
A lista a seguir explica os requisitos para o uso de agentes de transporte no Exchange.
- O serviço de transporte em servidores de caixa de correio e servidores de Transporte de Borda dá suporte total a todas as classes predefinidas no SDK.
- O serviço de Transporte front-end só dá suporte à classe SmtpReceiveAgent no SDK e agentes de terceiros não podem operar no evento OnEndOfData SMTP.
- O serviço de Transporte de Caixa de Correio não dá suporte ao SDK, portanto, você não pode usar agentes de terceiros no serviço de Transporte de Caixa de Correio.
Gerenciamento de agente de transporte
Os cmdlets do agente de transporte precisam distinguir entre o serviço de transporte e o serviço de transporte front-end. Os cmdlets de gerenciamento do Agente de Transporte manipulam o arquivo agents.config
de configuração localizado em %ExchangeInstallPath%TransportRoles\Shared
.
Para obter mais informações, consulte Gerenciar agentes de transporte em Exchange Server.
Agentes de transporte e eventos SMTP
Os agentes de transporte 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.
O SMTP Receive existe no serviço de Transporte front-end em servidores de caixa de correio, o serviço de transporte em servidores de caixa de correio e servidores de Transporte de Borda e o serviço de Entrega de Transporte de Caixa de Correio em servidores de caixa de correio. O categorizador existe apenas no serviço de transporte em servidores de caixa de correio e servidores de Transporte de Borda. Para obter mais informações sobre os serviços de transporte e o categorizador, consulte Roteamento de email em Exchange Server.
As tabelas a seguir listam os eventos SMTP que fornecem acesso a mensagens no pipeline de transporte.
Eventos de recebimento de SMTP
Sequência | Evento SMTP | Descrição |
---|---|---|
1 | OnConnectEvent | Esse evento é disparado pela conexão inicial de um host SMTP remoto. |
2 | OnHeloCommand | Esse evento é disparado quando o HELO comando é emitido pelo host SMTP remoto. |
3 | OnEhloCommand | Esse evento é disparado quando o EHLO comando é emitido pelo host SMTP remoto. |
4 | OnStartTlsCommand | Esse evento é disparado quando o STARTTLS comando é emitido pelo host SMTP remoto. |
5 | OnAuthCommand | Esse evento é disparado quando o AUTH comando é emitido pelo host SMTP remoto. |
6 | OnProcessAuthentication | Esse evento é disparado quando a autenticação com o host SMTP remoto está sendo processada. |
7 | OnEndOfAuthentication | Esse evento é disparado quando o host SMTP remoto concluiu a autenticação. |
8 | OnXSessionParamsCommand | Esse evento é disparado quando o XSESSIONPARAMS comando é emitido pelo host SMTP remoto. |
9 | OnMailCommand | Esse evento é disparado quando o MAIL FROM comando é emitido pelo host SMTP remoto. |
10 | OnRcptToCommand | Esse evento é disparado quando o RCPT TO comando é emitido pelo host SMTP remoto. |
11 | OnDataCommand | Esse evento é disparado quando o DATA comando (texto) ou BDAT (dados binários) é emitido pelo host SMTP remoto. |
12 | OnEndOfHeaders | Esse evento é disparado quando o host SMTP remoto é concluído enviando os cabeçalhos de mensagem de email. Isso é indicado por uma linha em branco (<CRLF> ) que separa os cabeçalhos da mensagem e o corpo da mensagem. |
13 | OnProxyInboundMessage | Esse evento é disparado quando uma sessão SMTP de entrada é retransmitida ou proxieda pelo serviço de Transporte front-end para o serviço de transporte em um servidor de caixa de correio. |
14 | Onendofdata | Esse evento é disparado quando o host SMTP remoto emite um comando de fim de dados:
|
** | OnHelpCommand | Esse evento será disparado se o HELP comando for emitido pelo host SMTP remoto. |
** | OnNoopCommand | Esse evento será disparado se o NOOP comando for emitido pelo host SMTP remoto. |
** | OnReject | Esse evento será disparado se o host SMTP receber emitir uma notificação de status de entrega temporária ou permanente (também conhecida como DSN, relatório de não entrega, NDR ou mensagem de salto) para o host SMTP de envio. |
** | OnRsetCommand | Esse evento será disparado se o RSET comando for emitido pelo host SMTP de envio. |
15 | OnDisconnectEvent | Esse evento é disparado pela desconexão da conversa SMTP pelo host de recebimento ou envio de SMTP. Normalmente, isso acontece quando o QUIT comando é emitido pelo host SMTP remoto. |
** Esses eventos podem ocorrer a qualquer momento após OnConnectEvent , mas antes de OnDisconnectEvent.
Eventos do categorizador
Sequência | Evento categorizador | Descrição |
---|---|---|
1 | OnSubmittedMessage | Esse evento é disparado quando uma mensagem chega na fila De envio no serviço de transporte no servidor do Exchange que recebe. |
2 | OnResolvedMessage | Esse evento é disparado depois que todos os destinatários foram resolvidos, mas antes que o próximo salto tenha sido determinado para cada destinatário. O evento de roteamento OnResolvedMessage permite que os eventos subsequentes substituam o comportamento de roteamento padrão usando o método SetRoutingOverride por destinatário. |
3 | OnRoutedMessage | Esse evento é disparado depois que as mensagens foram categorizadas, as listas de distribuição foram expandidas e os destinatários foram resolvidos. |
4 | OnCategorizedMessage | Esse evento é disparado quando o categorizador conclui o processamento da mensagem. |
Prioridade dos agentes de transporte
Dois fatores determinam a ordem para que os agentes de transporte atuem em mensagens no pipeline de transporte:
- O evento SMTP em que o agente de transporte é registrado e quando esse evento SMTP encontra mensagens.
- O valor de prioridade atribuído ao agente de transporte se houver vários agentes registrados no mesmo evento SMTP. A prioridade mais alta é 1. Um valor inteiro mais alto indica uma prioridade de agente mais baixa.
Por exemplo, suponha que você tenha configurado os seguintes agentes de transporte:
- O Agente de Transporte A com prioridade 1 e o Agente de Transporte C com prioridade 2 são registrados no evento SMTP OnEndOfHeaders.
- O Agente de Transporte B com prioridade 4 está registrado para o evento SMTP OnMailCommand.
O Agente de Transporte B é aplicado primeiro às mensagens porque o evento OnMailCommand encontra mensagens antes do evento OnEndOfHeaders . Quando as mensagens atingem o evento OnEndOfHeaders, o Agente de Transporte A é aplicado antes do Agente de Transporte C porque o Agente de Transporte A tem uma prioridade mais alta (valor inteiro mais baixo) do que o Agente de Transporte C.
Agentes de transporte internos
Exchange Server inclui muitos agentes de transporte internos que fornecem recursos como anti-spam, regras de transporte e diários. A maioria dos agentes de transporte internos nos servidores de Caixa de Correio do Exchange é invisível e não gerenciada pelos cmdlets de gerenciamento do agente de transporte. Praticamente todos os agentes de transporte internos visíveis e gerenciáveis estão no serviço de transporte em servidores de caixa de correio e servidores de Transporte de Borda.
Os agentes de transporte internos mais interessantes em servidores de caixa de correio são descritos na tabela a seguir. Observe que esta tabela não inclui muitos dos agentes de transporte invisíveis e incontroláveis.
Agentes de transporte internos interessantes em servidores de caixa de correio
Nome do Agente | Gerenciável? | Prioridade | Eventos SMTP ou categorizador |
---|---|---|---|
Agente de Regra de Transporte | Sim | 1 | OnResolvedMessage |
Agente de Política DLP | Sim | 2 | OnResolvedMessage |
Agente de Política de Retenção | Sim | 3 | OnResolvedMessage |
Agente de Revisão de Supervisão | Sim | 4 | OnResolvedMessage |
Agente malware | Sim | 5 | OnSubmittedMessage |
Agente de Roteamento de Mensagens de Texto | Sim | 6 | OnSubmittedMessage |
Agente de Entrega de Mensagens de Texto | Sim | 7 | n/d |
System Probe Drop Smtp Agent | Sim | 8 | OnEndOfHeaders |
Agente de roteamento de queda de investigação do sistema | Sim | 9 | OnCategorizedMessage |
Agente de Diário | Não | Não configurável | OnRoutedMessage |
Agente de Descriptografia do Relatório diário | Não | Não configurável | OnCategorizedMessage |
Agente de Descriptografia do RMS | Não | Não configurável | OnSubmittedMessage |
Agente de Criptografia RMS | Não | Não configurável |
OnSubmittedMessage OnRoutedMessage |
Agente de Descriptografia de Protocolo RMS | Não | Não configurável | Onendofdata |
Agentes de transporte internos interessantes em servidores de transporte do Edge
Em servidores de Transporte de Borda, a maioria dos agentes de transporte internos é visível e gerenciável pelos cmdlets de gerenciamento do agente de transporte ou por outros cmdlets específicos do recurso.
Os agentes de transporte internos mais interessantes nos servidores do Edge Transport são descritos na tabela a seguir. Observe que esta tabela não inclui agentes de transporte invisíveis ou incontroláveis.
Nome do Agente | Gerenciável? | Prioridade | Eventos SMTP ou categorizador |
---|---|---|---|
Agente de Filtragem de Conexões | Sim | 1 |
OnConnectEvent OnMailCommand OnRcptCommand OnEndOfHeaders |
Agente de Entrada de Reescrita de Endereço | Sim | 2 |
OnRcptCommand OnEndOfHeaders |
Agente de Regra de Borda | Sim | 3 | Onendofdata |
Agente de Filtro de Conteúdo* | Sim | 4 | Onendofdata |
Agente de ID do Remetente* | Sim | 5 | OnEndOfHeaders |
Agente de Filtro do Remetente* | Sim | 6 |
OnMailCommand OnEndOfHeaders |
Agente de Filtro do Destinatário | Sim | 7 | OnRcptCommand |
Agente de Análise de Protocolo* | Sim | 8 |
OnConnectEvent OnEndOfHeaders Onendofdata OnReject OnRsetCommand OnDisconnectEvent |
Agente de Filtragem de Anexo | Sim | 9 | Onendofdata |
Agente de Saída de Reescrita de Endereço | Sim | 10 |
OnSubmittedMessage OnRoutedMessage |
* Você também pode instalar e configurar esses agentes anti-spam em servidores de caixa de correio. Para saber mais, confira Habilitar a funcionalidade antispam em servidores Caixa de Correio.
Solucionar problemas de agentes de transporte
Para ajudá-lo a solucionar problemas com agentes de transporte, você pode usar os seguintes recursos:
Get-TransportPipeline: este cmdlet mostra os eventos SMTP e os agentes de transporte correspondentes que encontram mensagens no servidor exchange. Para obter mais informações, consulte Exibir agentes de transporte no pipeline de transporte no Exchange Server.
Rastreamento de pipeline: o rastreamento de pipeline cria um instantâneo exato de uma mensagem antes e depois de encontrar cada agente de transporte. Isso permite encontrar um agente de transporte que esteja causando resultados inesperados. Para obter mais informações, consulte Rastreamento de pipeline.