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:
Evento SMTP in cui è registrato l'agente di trasporto e quando l'evento SMTP rileva messaggi.
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 | Sì | 1 | OnResolvedMessage |
Agente malware | Sì | 2 | OnSubmittedMessage |
Agente di routing della messaggistica di testo | Sì | 3 | OnSubmittedMessage |
Agente di recapito messaggi di testo | Sì | 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 | Sì | 1 |
OnConnectEvent OnMailCommand OnRcptComand OnEndOfHeaders |
Agente in ingresso per la riscrittura degli indirizzi | Sì | 2 |
OnRcptComand OnEndOfHeaders |
Agente regole edge | Sì | 3 | OnEndOfData |
Agente filtro contenuto* | Sì | 4 | OnEndOfData |
Agente ID mittente* | Sì | 5 | OnEndOfHeaders |
Agente filtro mittente* | Sì | 6 |
OnMailCommand OnEndOfHeaders |
Agente filtro destinatari | Sì | 7 | OnRcptCommand |
Agente di analisi del protocollo* | Sì | 8 |
OnConnectEvent OnEndOfHeaders OnEndOfData OnReject OnRsetCommand OnDisconnectEvent |
Agente filtro allegati | Sì | 9 | OnEndOfData |
Agente in uscita per la riscrittura degli indirizzi | Sì | 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.