Agenti di trasporto

Si applica a: Exchange Server 2013

Gli agenti di trasporto consentono di installare software personalizzato creato da Microsoft, da fornitori di terze parti o dall'organizzazione in un server Exchange. Questo software può quindi elaborare i messaggi di posta elettronica che passano attraverso la pipeline di trasporto. In Microsoft Exchange Server 2013 la pipeline di trasporto è costituita dai processi seguenti:

  • Servizio trasporto front-end nei server Accesso client

  • Servizio di trasporto nei server Cassette postali

  • Servizio Trasporto cassette postali nei server Cassette postali

  • Il servizio Trasporto nei server Trasporto Edge

Per altre informazioni sulla pipeline di trasporto, vedere Flusso di posta elettronica

Analogamente alla versione precedente di Exchange, il trasporto di Exchange 2013 offre l'estendibilità tramite Microsoft Exchange Server 2013 Transport Agents SDK. La versione exchange 2013 dell'SDK è basata su Microsoft .NET Framework versione 4.0 e consente a terze parti di implementare le classi predefinite seguenti:

  • SmtpReceiveAgent

  • RoutingAgent

  • DeliveryAgent

In caso di conformità alle librerie nell'SDK, gli assembly risultanti vengono registrati con Exchange 2013, che carica gli agenti e richiama i relativi gestori eventi durante fasi specifiche delle sessioni SMTP o dell'elaborazione dei messaggi. Queste fasi, o eventi, fanno parte delle definizioni dell'agente. Le informazioni di registrazione dell'agente vengono archiviate in un file di configurazione XML.

L'elenco seguente illustra i requisiti per l'uso degli agenti di trasporto in Exchange 2013.

  • Il servizio Trasporto nei server Cassette postali e nei server Trasporto Edge supporta completamente tutte le classi predefinite nell'SDK e pertanto tutti gli agenti di trasporto di terze parti scritti per i ruoli del server Trasporto Hub o Trasporto Edge in Microsoft Exchange Server 2010 dovrebbero funzionare nel servizio Trasporto in Exchange 2013.

  • Il servizio Trasporto Front End supporta solo la classe SmtpReceiveAgent nell'SDK e gli agenti di terze parti non possono operare sull'evento SMTP OnEndOfData .

  • Il servizio Trasporto cassette postali non supporta affatto l'SDK, pertanto non è possibile usare agenti di terze parti nel servizio Trasporto cassette postali.

Il supporto per gli agenti di trasporto legacy in base alle versioni di .NET Framework precedenti alla versione 4.0 non è abilitato per impostazione predefinita, ma è possibile abilitarlo. Per istruzioni, vedere Attivare il supporto per gli agenti di trasporto legacy.

Aggiornamenti alla gestione dell'agente di trasporto

A causa degli aggiornamenti alla pipeline di trasporto di Exchange 2013, i cmdlet dell'agente di trasporto devono distinguere tra il servizio Trasporto e il servizio Trasporto Front End, in particolare se il server Accesso client e il server Cassette postali sono installati nello stesso computer. Per altre informazioni, vedere Gestire gli agenti di trasporto.

I cmdlet di gestione dell'agente di trasporto modificano un file di configurazione che si trova in %ExchangeInstallPath%TransportRoles\Shared. Per il servizio Trasporto nei server Cassette postali e nei server Trasporto Edge, il file è agents.config. Per il servizio Trasporto Front End nei server Accesso client, il file è fetagents.config. Entrambi i file usano lo stesso formato di Exchange 2010. Per altre informazioni sulla gestione degli agenti di trasporto, vedere Gestire gli agenti di trasporto.

Agenti di trasporto ed eventi SMTP

Gli agenti di trasporto usano eventi SMTP. Questi eventi vengono attivati quando i messaggi si spostano attraverso la pipeline di trasporto. Gli eventi SMTP consentono agli agenti di trasporto di accedere ai messaggi in momenti specifici durante la conversazione SMTP e durante il routing dei messaggi attraverso l'organizzazione.

Si noti che sono presenti nuovi eventi di ricezione SMTP in Exchange 2013. La ricezione SMTP esiste nel servizio Trasporto front-end nei server Accesso client, nel servizio Trasporto nei server Cassette postali e nei server Trasporto Edge e nel servizio Recapito del trasporto cassette postali nei server Cassette postali. Il classificatore esiste solo nel servizio Trasporto nei server Cassette postali e nei server Trasporto Edge. Per altre informazioni sui servizi di trasporto e sul classificatore, vedere Routing della posta.

Nelle tabelle seguenti sono elencati gli eventi SMTP che consentono l'accesso ai messaggi nella pipeline di trasporto.

Eventi di ricezione SMTP

Sequenza Evento SMTP Descrizione
1 OnConnectEvent Questo evento viene attivato dalla connessione iniziale da un host SMTP remoto.
2 OnHeloCommand Questo evento viene attivato quando il HELO comando viene eseguito dall'host SMTP remoto.
3 OnEhloCommand Questo evento viene attivato quando il EHLO comando viene eseguito dall'host SMTP remoto.
4 OnStartTlsCommand Questo evento viene attivato quando il STARTTLS comando viene eseguito dall'host SMTP remoto.
5 OnAuthCommand Questo evento viene attivato quando il AUTH comando viene eseguito dall'host SMTP remoto.
6 OnProcessAuthentication Questo evento viene attivato quando viene elaborata l'autenticazione con l'host SMTP remoto.
7 OnEndOfAuthentication Questo evento viene attivato quando l'host SMTP remoto ha completato l'autenticazione.
8 OnXSessionParamsCommand Questo evento viene attivato quando il XSESSIONPARAMS comando viene eseguito dall'host SMTP remoto.
9 OnMailCommand Questo evento viene attivato quando il MAIL FROM comando viene eseguito dall'host SMTP remoto.
10 OnRcptToCommand Questo evento viene attivato quando il RCPT TO comando viene eseguito dall'host SMTP remoto.
11 OnDataCommand Questo evento viene attivato quando il DATA comando (text) o BDAT (dati binari) viene eseguito dall'host SMTP remoto.
12 OnEndOfHeaders Questo evento viene attivato quando l'host SMTP remoto ha completato l'invio delle intestazioni del messaggio di posta elettronica. Ciò è indicato da una riga vuota (<CRLF>) che separa le intestazioni del messaggio e il corpo del messaggio.
13 OnProxyInboundMessage Questo evento viene attivato quando una sessione SMTP in ingresso viene inoltrata o sottoposta a proxy dal servizio Trasporto Front End in un server Accesso client al servizio Trasporto in un server Cassette postali.
14 OnEndOfData Questo evento viene attivato quando l'host SMTP remoto invia un comando end of data. Per le sessioni di testo avviate dal DATA comando, la fine dell'indicatore di dati è <CRLF>.<CRLF>. Per le sessioni binarie avviate dal BDAT comando, la fine dell'indicatore di dati è BDAT LAST.
** OnHelpCommand Questo evento viene attivato se il HELP comando viene eseguito dall'host SMTP remoto.
** OnNoopCommand Questo evento viene attivato se il NOOP comando viene eseguito dall'host SMTP remoto.
** OnReject Questo evento viene attivato se l'host SMTP ricevente invia un codice DSN (Delivery Status Notification) temporaneo o permanente all'host SMTP di invio.
** OnRsetCommand Questo evento viene attivato se il RSET comando viene eseguito dall'host SMTP di invio.
15 OnDisconnectEvent Questo evento viene attivato dalla disconnessione della conversazione SMTP dall'host SMTP di ricezione o invio. In genere, ciò si verifica quando il QUIT comando viene eseguito dall'host SMTP remoto.

** Questi eventi possono verificarsi in qualsiasi momento dopo OnConnectEvent ma prima di OnDisconnectEvent.

Eventi di categorizzazione

Sequenza Evento SMTP Descrizione
1 OnSubmittedMessage Questo evento viene attivato quando un messaggio arriva nella coda invio nel servizio Trasporto nel server Cassette postali ricevente o nel server Trasporto Edge.
2 OnResolvedMessage Questo evento viene attivato dopo che tutti i destinatari sono stati risolti, ma prima dell'hop successivo è stato determinato per ogni destinatario. L'evento di routing OnResolvedMessage consente agli eventi successivi di eseguire l'override del comportamento di routing predefinito usando il metodo SetRoutingOverride per destinatario.
3 OnRoutedMessage Questo evento viene attivato dopo la categorizzazione dei messaggi, l'espansione delle liste di distribuzione e la risoluzione dei destinatari.
4 OnCategorizedMessage Questo evento viene attivato quando il classificatore completa l'elaborazione del messaggio.

Priorità degli agenti di trasporto

L'ordine in cui gli agenti di trasporto agiscono sui messaggi nella pipeline di trasporto è determinato da due fattori:

  1. Evento SMTP in cui è registrato l'agente di trasporto e quando l'evento SMTP rileva messaggi.

  2. Il valore di priorità assegnato all'agente di trasporto se sono presenti più agenti registrati nello stesso evento SMTP. La priorità più alta è 1. Un valore intero superiore indica una priorità dell'agente più bassa.

Si supponga, ad esempio, di aver configurato gli agenti di trasporto seguenti:

  • L'agente di trasporto A con priorità 1 e l'agente di trasporto C con priorità 2 vengono registrati nell'evento SMTP OnEndOfHeaders.

  • L'agente di trasporto B con priorità 4 viene registrato nell'evento SMTP OnMailCommand.

L'agente di trasporto B viene applicato prima ai messaggi perché l'evento OnMailCommand rileva messaggi prima dell'evento OnEndOfHeaders . Quando i messaggi raggiungono l'evento OnEndOfHeaders, l'agente di trasporto A viene applicato prima dell'agente di trasporto C, perché l'agente di trasporto A ha una priorità più alta (valore intero più basso) rispetto all'agente di trasporto C.

Agenti di trasporto predefiniti

Exchange 2013 include molti agenti di trasporto predefiniti che offrono funzionalità quali la protezione dalla posta indesiderata, le regole di trasporto e il journaling. La maggior parte degli agenti di trasporto predefiniti nei server Cassette postali di Exchange 2013 e nei server Accesso client sono invisibili e non gestibili dai cmdlet di gestione dell'agente di trasporto. Praticamente tutti gli agenti di trasporto predefiniti visibili e gestibili si trovano nel servizio Trasporto nei server Cassette postali e nei server Trasporto Edge.

Gli agenti di trasporto predefiniti più interessanti nei server Cassette postali sono descritti nella tabella seguente. Si noti che questa tabella non include molti degli agenti di trasporto invisibili e ingestibili.

Agenti di trasporto predefiniti interessanti nei server Cassette postali

Nome agente Gestibilità? Priorità Eventi SMTP o categorizzatori
Agente della regola di trasporto 1 OnResolvedMessage
Agente malware 2 OnSubmittedMessage
Agente di routing della messaggistica di testo 3 OnSubmittedMessage
Agente di recapito messaggi di testo 4 n/d
Agente journal No Non configurabile OnRoutedMessage
Agente di decrittografia dei rapporti del journal No Non configurabile OnCategorizedMessage
Agente di decrittografia RMS No Non configurabile OnSubmittedMessage
Agente di crittografia RMS No Non configurabile OnSubmittedMessage
OnRoutedMessage
Agente di decrittografia del protocollo RMS No Non configurabile OnEndOfData

Nei server Trasporto Edge, la maggior parte degli agenti di trasporto predefiniti è visibile e gestibile dai cmdlet di gestione degli agenti di trasporto o da altri cmdlet specifici delle funzionalità.

Gli agenti di trasporto predefiniti più interessanti nei server Trasporto Edge sono descritti nella tabella seguente. Si noti che questa tabella non include agenti di trasporto invisibili o ingestibili.

Agenti di trasporto integrati interessanti nei server Trasporto Edge

Nome agente Gestibilità? Priorità Eventi SMTP o categorizzatori
Agente filtro connessione 1 OnConnectEvent
OnMailCommand
OnRcptComand
OnEndOfHeaders
Agente in ingresso per la riscrittura degli indirizzi 2 OnRcptComand
OnEndOfHeaders
Agente regole edge 3 OnEndOfData
Agente filtro contenuto* 4 OnEndOfData
Agente ID mittente* 5 OnEndOfHeaders
Agente filtro mittente* 6 OnMailCommand
OnEndOfHeaders
Agente filtro destinatari 7 OnRcptCommand
Agente di analisi del protocollo* 8 OnConnectEvent
OnEndOfHeaders
OnEndOfData
OnReject
OnRsetCommand
OnDisconnectEvent
Agente filtro allegati 9 OnEndOfData
Agente in uscita per la riscrittura degli indirizzi 10 OnSubmittedMessage
OnRoutedMessage

* È anche possibile installare e configurare questi agenti di protezione dalla posta indesiderata nei server Cassette postali. Per ulteriori informazioni, vedere Attivare la funzionalità di protezione dalla posta indesiderata sui server cassette postali.

Risolvere i problemi relativi agli agenti di trasporto

Per risolvere i problemi relativi agli agenti di trasporto, è possibile usare le funzionalità seguenti:

  • Get-TransportPipeline: questo cmdlet mostra gli eventi SMTP e gli agenti di trasporto corrispondenti che rilevano messaggi nel server Exchange. Per altre informazioni, vedere Visualizzare gli agenti di trasporto nella pipeline di trasporto.

  • Traccia pipeline: la traccia della pipeline crea uno snapshot esatto di un messaggio prima e dopo che rileva ogni agente di trasporto. In questo modo è possibile trovare un agente di trasporto che causa risultati imprevisti. Per altre informazioni, vedere Traccia della pipeline.