Panoramica sugli agenti di trasporto

 

Si applica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Ultima modifica dell'argomento: 2007-07-17

Gli agenti di trasporto consentono di installare un software personalizzato, creato da Microsoft, fornitori di terze parti o dall'organizzazione, in un computer sul cui è in esecuzione Microsoft Exchange Server 2007. Questo software potrà quindi elaborare i messaggi di posta elettronica che passano attraverso la pipeline di trasporto in un server Trasporto Hub o in un server Trasporto Edge. Gli agenti di trasporto personalizzati forniscono funzionalità aggiuntive a Exchange 2007, quali programmi di protezione posta indesiderata o antivirus, oppure qualsiasi funzione di trasporto richiesta dall'organizzazione.

Gli agenti di trasporto sono in genere installati automaticamente come parte di applicazioni progettate per funzionare con Exchange 2007. Tuttavia, potrebbero verificarsi casi in cui le organizzazioni desiderano sviluppare agenti di trasporto propri per gestire la posta scambiata attraverso l'organizzazione di Exchange 2007.

Avviso

Gli agenti di trasporto dispongono dell'accesso completo a tutti i messaggi di posta elettronica rilevati. Exchange non pone alcuna restrizione al comportamento degli agenti di trasporto. Gli agenti di trasporto instabili o che presentano difetti nel sistema di protezione possono compromettere la stabilità e la sicurezza di Exchange. Pertanto, è necessario installare soltanto gli agenti di trasporto completamente attendibili già sperimentati in un ambiente di prova.

Per informazioni su come scrivere un nuovo agente di trasporto, vedere Transport Agents (informazioni in lingua inglese) in "Microsoft Exchange Server 2007 SDK Documentation".

Per ulteriori informazioni sulla pipeline di trasporto in Exchange 2007, vedere Architettura di trasporto.

Agenti di trasporto ed eventi SMTP

Gli agenti di trasporto scritti per Exchange 2007 utilizzano eventi SMTP (Simple Mail Transfer Protocol). Questi eventi vengono attivati quando i messaggi si muovono 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. Nella tabella 1 sono elencati gli eventi SMTP che forniscono l'accesso ai messaggi nella pipeline di trasporto:

Tabella 1 Eventi SMTP

Sequenza Evento SMTP Descrizione

1

OnConnectEvent

Questo evento viene attivato in caso di connessione iniziale da un host SMTP remoto.

2

OnHeloCommand

Questo evento viene attivato quando il comando SMTP HELO viene emesso dall'host SMTP remoto.

3

OnEhloCommand

Questo evento viene attivato quando il comando SMTP EHLO viene emesso dall'host SMTP remoto.

4

OnAuthCommand

Questo evento viene attivato quando il comando SMTP AUTH viene emesso dall'host SMTP remoto.

5

OnEndOfAuthentication

Questo evento viene emesso quando l'host SMTP remoto termina l'autenticazione.

6

OnMailCommand

Questo evento viene attivato quando il comando SMTP MAIL FROM viene emesso dall'host SMTP remoto.

7

OnRcptCommand

Questo evento viene attivato quando il comando SMTP RCPT TO viene emesso dall'host SMTP remoto.

8

OnDataCommand

Questo evento viene attivato quando il comando SMTP DATA viene emesso dall'host SMTP remoto.

9

OnEndOfHeaders

Questo evento viene attivato quando l'host SMTP remoto termina l'invio delle intestazioni dei messaggi di posta elettronica.

10

OnEndOfData

Questo evento viene attivato quando l'host SMTP remoto emette <CRLF>.<CRLF>, il quale indica la fine dei dati.

**

OnHelpCommand

Questo evento viene attivato quando il comando SMTP HELP viene emesso dall'host SMTP remoto. Questo evento può verificarsi in ogni momento, successivamente all'evento SMTP OnConnectEvent e prima dell'evento SMTP OnDisconnectEvent.

**

OnNoopCommand

Questo evento viene attivato quando il comando SMTP NOOP viene emesso dall'host SMTP remoto. Questo evento può verificarsi in ogni momento, successivamente all'evento SMTP OnConnectEvent e prima dell'evento SMTP OnDisconnectEvent.

**

OnReject

Questo evento viene attivato quando l'host SMTP di ricezione emette una codice di notifica sullo stato del recapito (DSN, delivery status notification) temporaneo o permanente per l'host SMTP di invio. Questo evento può verificarsi in ogni momento, successivamente all'evento SMTP OnConnectEvent e prima dell'evento SMTP OnDisconnectEvent.

**

OnRsetCommand

Questo evento viene attivato quando il comando SMTP RSET viene emesso dall'host SMTP di invio. Questo evento può verificarsi in ogni momento, successivamente all'evento SMTP OnConnectEvent e prima dell'evento SMTP OnDisconnectEvent.

11

OnDisconnectEvent

Questo evento viene attivato alla disconnessione della conversazione SMTP da parte di un host SMTP di ricezione o di invio.

12

OnSubmittedMessage

Questo evento viene attivato all'invio di un messaggio nelle code di invio nell'host SMTP di ricezione. Tutti i messaggi rilevano questo evento, indipendentemente dalla loro provenienza (tramite invio SMTP, invio MAPI o directory di prelievo o riesecuzione).

13

OnResolvedMessage

Questo evento viene attivato dopo che tutti i destinatari sono stati risolti ma prima di determinare l'hop successivo per ciascun destinatario. L'evento di routing OnResolvedMessage consente la sostituzione del comportamento di routing predefinito dagli eventi successivi utilizzando il metodo SetRoutingOverride per destinatario.

Nota

L'evento di routing OnResolvedMessage è disponibile solo in Exchange 2007 Service Pack 1 (SP1).

14

OnRoutedMessage

Questo evento viene attivato in seguito alla categorizzazione dei messaggi, all'espansione delle liste di distribuzione e alla risoluzione dei destinatari.

Gli agenti di trasporto possono essere registrati su qualsiasi evento SMTP elencato nella tabella 1. Tuttavia, l'azione prevista per l'agente di trasporto determina, in genere, gli eventi SMTP sui quali verrà eseguito l'agente in questione.

Per gli agenti di protezione posta indesiderata, la considerazione più importante oltre alla validità dei contenuti dei messaggi è il momento in cui un messaggio di posta indesiderata valido viene identificato e rifiutato. Prima viene rifiutato un messaggio riconosciuto come posta indesiderata, inferiore sarà il costo per l'organizzazione. Gli eventi SMTP attivati prima dell'evento SMTP OnEndOfData non richiedono la generazione di una conferma di mancato recapito (NDR, non-delivery receipt) da parte dell'host SMTP di ricezione. Questo perché i contenuti dell'intero messaggio non vengono recapitati prima che si raggiunga l'evento SMTP OnEndOfData. Pertanto, l'host SMTP di invio è ancora responsabile del recapito finale del messaggio. Se il recapito all'host SMTP di ricezione fallisce prima dell'evento SMTP OnEndOfData, l'host SMTP di invio deve generare la conferma di mancato recapito per il mittente del messaggio. Una volta raggiunto l'evento SMTP OnEndOfData, l'host SMTP di ricezione ha accettato tutti i contenuti del messaggio. Questo significa che l'host SMTP ora avrà la responsabilità di recapitare il messaggio, nonché di generare e inviare una conferma di mancato recapito al mittente del messaggio. Pertanto, è indispensabile che un agente di protezione posta indesiderata si registri sugli eventi SMTP prima che sia raggiunto l'evento SMTP OnEndOfData, al fine di ridurre le probabilità che l'host SMTP di ricezione memorizzi i contenuti del messaggio e debba generare una conferma di mancato recapito per il mittente del messaggio.

Tuttavia, per quanto concerne gli agenti antivirus, la considerazione più importante riguarda la garanzia che ogni messaggio venga analizzato. Gli agenti ai quali spetta l'analisi dei messaggi devono essere configurati sull'evento SMTP OnSubmittedMessage. Ogni messaggio che attraversa la pipeline di trasporto rileva l'evento SMTP OnSubmittedMessage poiché questo si verifica dopo tutti i punti di ingresso degli invii, quali invio SMTP da host remoti, invio MAPI da computer nei quali è in esecuzione il ruolo del server Cassette postali, directory di prelievo utilizzata dalle applicazioni personalizzate o directory di riesecuzione utilizzata da applicazioni di posta elettronica di terze parti.

Scala di priorità degli agenti di trasporto.

Exchange 2007 consente di specificare la priorità degli agenti di trasporto inclusi in Exchange e aggiunti da applicazioni personalizzate. Specificando la priorità di un agente di trasporto, è possibile controllare quali agenti agiscono per primi su un messaggio. È possibile assegnare una priorità di 1 o superiore. Gli agenti di trasporto con priorità prossima a 1 vengono applicati per primi ai messaggi. Tuttavia, la priorità assegnata a un agente di trasporto è solo uno dei fattori utilizzati per determinare l'ordine con il quale gli agenti di trasporto vengono applicati ai messaggi. Il secondo fattore utilizzato per determinare la priorità degli agenti di trasporto è la collocazione dell'evento SMTP sul quale è registrato un agente di trasporto all'interno della sequenza degli eventi SMTP.

Come mostrato in precedenza nella tabella 1, sempre in questo argomento, gli eventi SMTP vengono applicati ai messaggi che attraversano la pipeline di trasporto in una sequenza specifica. Ad esempio, l'evento SMTP OnConnectEvent si verifica sempre prima degli eventi SMTP OnHeloCommand o OnEhloCommand. Dal momento che gli agenti di trasporto sono registrati su eventi SMTP specifici, quasto significa che, indipendentemente dalla priorità assegnata a un agente di trasporto sull'evento SMTP OnEhloCommand, gli agenti di trasporto registrati sull'evento SMTP OnConnectEvent verranno sempre applicati per primi ai messaggi.

Ad esempio, è possibile avere agenti di trasporto così configurati:

  • Agente di trasporto AgenteA con priorità 1 registrato sull'evento SMTP OnEndofHeaders

  • Agente di trasporto AgenteB con priorità 4 registrato sull'evento SMTP OnMailCommand

Quando si visualizza l'elenco degli agenti registrati mediante il cmdlet Get-TransportAgent, l'agente di trasporto AgenteA viene elencato con una priorità maggiore rispetto all'agente di trasporto AgenteB. Tuttavia, quando un messaggio attraversa la pipeline di trasporto, l'agente di trasporto AgenteB viene applicato al messaggio prima dell'agente di trasporto AgenteA, poiché l'evento SMTP OnMailCommand rileva il messaggio prima dell'evento SMTP OnEndOfHeaders.

La priorità assegnata a un agente di trasporto diviene rilevante nel caso in cui due o più agenti di trasporto sono registrati sullo stesso evento SMTP. Se l'agente di trasporto AgenteA e l'agente di trasporto AgenteB sono entrambi registrati sull'evento SMTP OnEndofHeaders, quando un messaggio rileva quell'evento, l'agente di trasporto AgenteA viene applicato al messaggio prima dell'agente di trasporto AgenteB. Se l'agente di trasporto AgenteB è registrato sia sull'evento SMTP OnEndOfHeaders sia sull'evento SMTP OnMailCommand, verrà applicato al messaggio due volte. L'agente di trasporto AgenteB verrà applicato per primo poiché è registrato sull'evento SMTP OnMailCommand. Quindi, quando il messaggio rileva l'evento SMTP OnEndOfHeaders su cui sono registrati sia l'agente di trasporto AgenteA sia l'agente di trasporto AgenteB, l'agente di trasporto AgenteA verrà applicato poiché ha una priorità maggiore rispetto all'agente di trasporto AgenteB. Infine, l'agente di trasporto AgenteB verrà applicato per la seconda volta.

Agenti di trasporto incorporati

In Exchange 2007 sono inclusi diversi agenti di trasporto predefiniti che consentono di fornire funzionalità quali le regole di trasporto e l'inserimento nel journal. Per impostazione predefinita, gli agenti di trasporto elencati nelle seguenti tabelle sono installati nei server Trasporto Hub e Trasporto Edge. Le seguenti tabelle forniscono anche argomenti che contengono informazioni relative a ciascun agente.

Tabella 2 Agenti di trasporto del server Trasporto Hub

Nome agente Priorità Eventi SMTP Descrizione

Agente regola di trasporto

1

OnRoutedMessage

Cenni preliminari sulle regole di trasporto

Agente di journaling

2

OnSubmittedMessage, OnRoutedMessage

Panoramica sull'inserimento nel journal

Agente di prelicenza RMS (Rights Management Services) di Active Directory

Nota

L'agente di prelicenza RMS di Active Directory è disponibile solo in Exchange 2007 SP1. È disabilitato per impostazione predefinita.

3

OnRoutedMessage

Concetti relativi all'agente di prelicenza RMS di Active Directory

Tabella 3 Agenti di trasporto del server Trasporto Edge

Nome agente Priorità Eventi SMTP Argomento correlato

Agente filtro connessioni

1

OnConnectEvent, OnMailCommand, OnRcptComand, OnEndOfHeaders

Filtro connessioni

Agente di riscrittura indirizzi in ingresso

2

OnRcptCommand, OnEndOfHeaders

Pianificazione per la riscrittura degli indirizzi

Agente regola Edge

3

OnEndOfData

Cenni preliminari sulle regole di trasporto

Agente filtro contenuto

4

OnEndOfData

Filtro contenuto

Agente ID mittente

5

OnEndOfHeaders

ID mittente

Agente filtro mittente

6

OnMailCommand, OnEndOfHeaders

Filtro mittente

Agente filtro destinatario

7

OnRcptCommand

Filtri destinatario

Agente di analisi protocollo

8

OnEndOfHeaders, OnEndOfData, OnReject, OnRsetCommand, OnDisconnectEvent

Gestione della registrazione del protocollo

Agente filtro allegati

9

OnEndOfData

Applicazione del filtro agli allegati

Agente di riscrittura indirizzi in uscita

10

OnRcptCommand, OnEndOfHeaders

Pianificazione per la riscrittura degli indirizzi

Agenti di trasporto risoluzione problemi

Grazie agli agenti di trasporto, Exchange consente di controllare il flusso dei messaggi di posta elettronica attraverso l'organizzazione. Questo consente a sua volta di adeguare l'infrastruttura di Exchange alle esigenze dell'organizzazione, anziché forzare l'organizzazione stessa ad adeguarsi all'infrastruttura della posta elettronica. Se si personalizza l'ambiente, aumenta la complessità dell'ambiente stesso. Per aiutare a risolvere i problemi che possono verificarsi, nonché per verificare che le variazioni apportate vengano applicate ai messaggi come previsto, Exchange offre le seguenti funzionalità:

  • Cmdlet Get-TransportPipeline Il cmdlet Get-TransportPipeline mostra tutti gli agenti di trasporto abilitati, insieme con gli eventi SMTP su cui sono registrati, che hanno rilevato i messaggi nella pipeline di trasporto nel periodo di tempo intercorso tra l'avvio del servizio di trasporto di Microsoft e l'esecuzione del cmdlet. Per ulteriori informazioni, vedere Come visualizzare gli agenti di trasporto nella pipeline di trasporto.

    Nota

    Le informazioni visualizzate dal cmdlet Get-TransportPipeline vengono generate soltanto successivamente all'invio di un messaggio attraverso la pipeline di trasporto. Di conseguenza, solo gli agenti di trasporto che hanno rilevato il messaggio vengono visualizzati.

  • Analisi della pipeline L'analisi della pipeline consente di creare lo snapshot preciso di un intero messaggio prima e dopo il rilevamento dell'agente di trasporto da parte del messaggio. L'analisi della pipeline consente di determinare quale agente di trasporto può aver generato risultati inattesi o verificare che l'agente di trasporto si comporti come previsto. Per ulteriori informazioni, vedere Utilizzo dell'analisi della pipeline per diagnosticare i problemi dell'agente di trasporto.

Ulteriori informazioni

Per ulteriori informazioni sugli agenti di trasporto, vedere i seguenti argomenti: