Estensioni del protocollo SMTP per Exchange Server 2007

 

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

Ultima modifica dell'argomento: 2009-09-17

Il modulo SMTP (Simple Mail Transfer Protocol) è il dispatcher principale degli eventi COM. Il modulo principale del protocollo SMTP è responsabile di tutta la comunicazione standard SMTP e gestisce la maggior parte delle estensioni del servizio SMTP standard. Nello specifico, il modulo principale SMTP gestisce lo standard ESMTP (Extended Simple Mail Transfer Protocol) definito da RFC (Request for Comments) 821 e RFC 1869. Gli eventi del protocollo possono essere utilizzati per modificare il protocollo SMTP affinché aggiunga nuovi comandi ESMTP o addirittura modifichi l'azione dei comandi esistenti. Exchange Server 2007 utilizza questi eventi del protocollo per implementare dei comandi SMTP estesi specifici di Exchange, al fine di comunicare con altri server di Exchange dell'organizzazione con maggior efficacia rispetto a SMTP standard.

È possibile verificare che i comandi SMTP estesi per Exchange Server 2007 siano caricati: utilizzare a questo scopo telnet per connettersi alla porta TCP del server virtuale SMTP. Quando si invia il comando EHLO per avviare una connessione ESMTP, la risposta del server indica le funzionalità supportate dal server virtuale SMTP. I comandi standard vengono elencati quando si invia un comando HELP.

Nella seguente tabella sono illustrate le funzionalità SMTP supportate dal servizio SMTP esteso di Exchange.

Funzionalità SMTP supportate in Exchange Server 2007

Risposta del server SMTP Commenti

8BITMIME

Indica che il server virtuale SMTP locale supporta i messaggi MIME (Multipurpose Internet Mail Extensions) a 8 bit.

AUTH, AUTH GSSAPI NTLM LOGIN e AUTH=LOGIN

Segnala che il server virtuale SMTP locale supporta l'estensione del servizio per l'autenticazione SMTP. Le informazioni aggiuntive dopo la parola chiave AUTH identificano i meccanismi di autenticazione supportati.

BDAT, CHUNKING

Un'alternativa al comando DATA, che richiede due argomenti. Quando un server virtuale SMTP risponde al comando EHLO con la risposta CHUNKING, il server SMTP indica che supporta il comando BDAT e che accetterà i messaggi in suddivisioni.

Il primo argomento indica la lunghezza del pacchetto dati binari, in modo che l'host SMTP non debba continuamente eseguire la scansione in attesa della fine dei dati. Il server ricevente conta i byte nel messaggio e quando le dimensioni di quest'ultimo corrispondono al valore inviato dal comando BDAT, il server presuppone di aver ricevuto tutti i dati del messaggio. Il secondo argomento indica se il pacchetto dati è l'ultimo pacchetto della trasmissione attuale. Il secondo argomento è facoltativo.

BINARYMIME

Indica che il server virtuale SMTP accetta i messaggi che contengono materiale binario senza codifica di trasporto. Questi messaggi devono utilizzare un parametro BODY che includa il valore BINARYMIME insieme al comando MAIL. Quando il server SMTP accetta il comando MAIL con un parametro BODY di BINARYMIME, il server accetta di mantenere tutti i bit in ciascun ottetto passati tramite il comando BDAT. L'estensione SMTP BINARYMIME può essere utilizzata solo con CHUNKING.

DATA

Inviato da un host remoto per avviare il trasferimento del contenuto del messaggio.

DSN

Un comando ESMTP cha abilita le notifiche sullo stato del recapito, come definito da RFC (Request for Comments) 1891.

EHLO

Inviato da un client per segnalare l'inizio di una sessione ESMTP. Il server può identificare il suo supporto dei comandi ESMTP nella risposta a EHLO.

HELO

Inviato da un client per identificare se stesso (solitamente con un nome di dominio) e per segnalare l'inizio di una sessione SMTP standard.

HELP

Restituisce un elenco di comandi SMTP supportati dal server virtuale SMTP nelle sessioni standard SMTP (anziché nelle sessioni ESMTP).

MAIL

Identifica l'inizio di un trasferimento dei messaggi mediante il riconoscimento del mittente del messaggio, utilizzato nel modulo MAIL FROM.

PIPELINING

Fornisce la capacità di inviare un flusso di comandi senza dover attendere la risposta dopo ciascun comando.

QUIT

Segnala il termine di una sessione SMTP standard o estesa.

RCPT

Identifica i destinatari del messaggio, utilizzati nel modulo RCPT TO.

RSET

Annulla l'intera transazione dei messaggi e azzera il buffer.

SIZE

Fornisce un meccanismo che consente al server virtuale SMTP di indicare la dimensione massima supportata dei messaggi. I server conformi devono fornire le estensioni di dimensione per indicare la dimensione massima dei messaggi che può essere accettata. Gli host remoti non dovrebbero inviare messaggi di dimensioni superiori a quelle indicate dal server.

STARTTLS

Indica che il server SMTP supporta l'SMTP protetto su TLS (Transport Layer Security). L'estensione del servizio SMTP per SMTP protetto su TLS è definita in RFC 2487.

VRFY

Verifica che una cassetta postale è disponibile per il recapito dei messaggi. Ad esempio, VRFY TED verifica se la cassetta postale di Ted si trova sul server locale. Per impostazione predefinita, questo comando è disponibile in Exchange 2007, ma non verifica gli utenti. Il server informerà l'host remoto che i messaggi verranno accettati, anche se non è possibile verificare l'utente. La risposta del server presenta il seguente formato: 252 2.1.5 Impossibile eseguire VRFY dell'utente, ma prenderà i messaggi per Ted@wingtiptoys.com

XEXCH50

Consente di inviare le proprietà estese della busta di trasporto del messaggio nel formato MDBEF (Message Database Encoding Format) durante una comunicazione tra server di Exchange 2007.

X-EXPS GSSAPI NTLM LOGIN, X-EXPS=LOGIN

X-EXPS è un comando proprietario di Exchange. È simile a AUTH perché indica i metodi di autenticazione che possono essere utilizzati dai server su cui è in esecuzione Exchange 2007, Exchange 2003 e Exchange 2000, ovvero:

GSSAPI   Acronimo di Generic Security Services Application Programming Interface, è un metodo che consente l'autenticazione tramite Kerberos.

NTLM   Acronimo di Windows NT LAN Manager, è un metodo che consente l'autenticazione tramite il protocollo Windows NT Challenge/Response.

LOGIN   Acronimo di AUTH LOGIN, un metodo di autenticazione non crittografato che utilizza un nome utente e una password codificati in base 64.

X-LINK2STATE

Aggiunge il supporto per la propagazione dello stato dei collegamenti al servizio SMTP. Per dettagli sull'algoritmo dello stato dei collegamenti utilizzato per la propagazione delle informazioni sullo stato dei collegamenti all'interno dei gruppi di routing e tra di essi, vedere Message Routing Architecture (informazioni in lingua inglese).

Nota

Tutti i comandi SMTP specifici di Exchange iniziano con una "X-" (senza le virgolette). Se questi comandi non sono elencati nella risposta EHLO del proprio server virtuale SMTP, sul server è in esecuzione la versione Windows Server del servizio SMTP. In questo caso, è necessario reinstallare Exchange Server 2007 ed eventuali Service Pack.

Categorie eventi di protocollo

Il modulo del protocollo SMTP attiva eventi di protocollo per controllare la comunicazione tra gli host. Esistono tre principali tipologie di eventi che possono verificarsi durante un simile tipo di comunicazione su SMTP:

  • Il servizio SMTP riceve un comando SMTP

    Questi eventi si verificano quando un host o un client SMTP remoto si collega al servizio SMTP locale e stabilisce una sessione tramite il comando HELO o EHLO. Gli eventi di questa categoria sono eventi OnInboundCommand del protocollo SMTP sulle connessioni in ingresso.

  • Il servizio SMTP riceve una risposta SMTP

    Questi eventi si verificano quando il servizio SMTP locale riceve delle risposte da un client o un host SMTP remoto ai comandi SMTP in uscita. Gli eventi di questa categoria sono eventi OnServerResponse del protocollo SMTP sulle connessioni in uscita.

  • Il servizio SMTP invia un comando SMTP

    Questi eventi si verificano quando il servizio SMTP locale si connette a un host SMTP remoto e stabilisce una sessione per trasferire i messaggi. Gli eventi di questa categoria sono eventi OnSessionBegin, OnMessageStart, OnPerRecipient, OnBeforeData e OnSessionEnd del protocollo SMTP sulle connessioni in uscita.

Nella seguente tabella viene riepilogato lo scopo di ciascun evento del protocollo SMTP.

Eventi del protocollo nel servizio SMTP

Evento Commenti

OnInboundCommand

Si verifica quando un comando SMTP viene ricevuto dal servizio del protocollo SMTP, che fornisce a un sink di evento la possibilità di rispondere.

OnServerResponse

Si verifica quando il servizio SMTP riceve una risposta SMTP a un comando SMTP inviato in precedenza.

OnSessionBegin

Si verifica prima della trasmissione del comando EHLO.

OnMessageStart

Si verifica prima della trasmissione del comando MAIL FROM.

OnPerRecipient

Si verifica prima della trasmissione del comando RCPT TO.

OnBeforeData

Si verifica prima della trasmissione del comando del protocollo DATA.

OnSessionEnd

Si verifica prima della trasmissione del comando QUIT.

Estensioni specifiche di Exchange del protocollo SMTP

Il programma di installazione di Exchange Server 2007 registra le estensioni del protocollo SMTP specifiche di Exchange per le seguenti funzionalità del protocollo SMTP.

XEXCH50

XEXCH50 è un'estensione ESMTP di Exchange che viene utilizzata per inoltrare determinate proprietà del messaggio, quali la busta del messaggio e le proprietà dei destinatari. Il comando XEXCH50 è un comando breve. Un comando XEXCH50 che ha ricevuto una risposta di operazione riuscita è seguito da un oggetto binario di grandi dimensioni (BLOB) dalle dimensioni variabili (le dimensioni corrispondono al primo argomento del comando XEXCH50).

Questa funzionalità viene implementata mediante nove sink di evento per supportare una comunicazione completa tra due server in cui è in esecuzione Exchange. Nella seguente tabella gli eventi di protocollo sono associati ai relativi sink di evento XEXCH50. Tutti i sink XEXCH50 sono implementati in Peexch50.dll, che si trova nella directory Programmi\Exchsrvr\bin.

Estensioni del protocollo per il comando XEXCH50

Sink di evento Evento di protocollo Commenti

Sink di notifica invio dati XEXCH50 del protocollo SMTP di Exchange

OnBeforeData

Notifica al sink XEXCH50 che il comando del protocollo DATA sta per essere trasmesso. Il sink XEXCH50 può chiedere al servizio AMTP di inviare un comando XEXCH50 per l'avvio di una comunicazione XEXCH50.

Sink EHLO in ingresso XEXCH50 del protocollo SMTP di Exchange

OnInboundCommand

Notifica al sink XEXCH50 che è stato ricevuto un comando EHLO.

Sink XEXCH50 in ingresso XEXCH50 del protocollo SMTP di Exchange

OnInboundCommand

Implementa il comando XEXCH50 per iniziare una conversazione XEXCH50.

Sink MAIL in ingresso XEXCH50 del protocollo SMTP di Exchange

OnInboundCommand

Implementa il comando MAIL in una conversazione XEXCH50.

Sink MAIL in ingresso XEXCH50 del protocollo SMTP di Exchange

OnInboundCommand

Consente al server virtuale SMTP locale di ricevere le informazioni dei destinatari in una comunicazione in arrivo XEXCH50.

Sink di evento per destinatario XEXCH50 del protocollo SMTP di Exchange

OnPerRecipient

Consente al server virtuale SMTP locale di inviare le informazioni dei destinatari in una comunicazione in uscita XEXCH50.

Sink di risposta Ehlo XEXCH50 del protocollo SMTP di Exchange

OnServerResponse

Consente al server virtuale SMTP locale di ricevere una risposta dopo l'invio di un comando EHLO all'host remoto. La risposta dall'host remoto potrebbe indicare il supporto per le comunicazioni XEXCH50. Exchange include XEXCH50 nell'elenco dei comandi supportati che vengono restituiti all'host di connessione.

Sink di risposta XEXCH50 del protocollo SMTP di Exchange

OnServerResponse

Consente al server virtuale SMTP locale di ricevere una risposta a un comando XEXCH50 in uscita emesso in precedenza. Ad esempio, se il servizio SMPT locale ha inviato un comando XEXCH50 senza aver prima eseguito l'autenticazione, il server remoto risponde con: 504 È necessario eseguire l'autenticazione.

Sink di risposta RCPT XEXCH50 del protocollo SMTP di Exchange

OnServerResponse

Consente al server virtuale SMTP locale di ricevere le informazioni sullo stato dal server remoto Exchange per ciascun destinatario indicato con un comando RCPT in uscita. L'indirizzo di un destinatario potrebbe essere formattato erroneamente o il server potrebbe non essere in grado di eseguire l'inoltro. Se le informazioni del destinatario sono corrette, il server virtuale SMTP remoto riflette l'indirizzo al servizio SMTL locale con informazioni sullo stato, quali: 250 2.1.5 administrator@tailspintoys.com.

X-LINK2STATE

I comandi e le risposte X-LINK2STATE sono estensioni specifiche di SMTP. Questo comando è proprietario di Exchange ed è studiato per lo scambio di informazioni sulla topologia di routing tra i server SMTP di Exchange. La dimensione massima consentita di qualsiasi comando e risposta X-LINK2STATE è 1024 byte. Questa dimensione spesso corrisponde a quella effettiva dei comandi e delle risposte X-LINK2STATE.

Questa funzionalità viene implementata con cinque sink di evento. Tuttavia, un sink di evento viene utilizzato per due eventi separati, come illustrato nella tabella seguente. Tutti i sink di evento XEXCH50 sono implementati in Xlsasink.dll nella directory \Programmi\Exchsrvr\bin.

Estensioni del protocollo per il comando X-LINK2STATE

Sink di evento Evento di protocollo Commenti

Sink per XLSA di handler di comando EHLO in ingresso

OnInboundCommand

Notifica i sink evento X-LINK2STATE che è stato ricevuto un comando EHLO in ingresso.

Sink di handler di comando X-LSA in ingresso

OnInboundCommand

Notifica i sink evento X-LINK2STATE che è stato ricevuto un comando X-LINK2STATE in ingresso.

Sink X-LSA

OnMessageStart, OnSessionEnd

Segnala l'inizio (comando MAIL) e la fine (comando QUIT) di una comunicazione X-LINK2STATE in uscita. Poiché il server virtuale SMTP remoto è il destinatario finale del pacchetto Orginfo in trasmissione, non è necessario indicare i destinatari in un comando RCPT in uscita. Questo sink di evento trasmette le informazioni sullo stato del collegamento.

Sink di handler di risposta X-LSA

OnServerResponse

Risponde a un comando X-LINK2STATE in ingresso con informazioni sulla modalità di trasmissione delle informazioni sullo stato del collegamento. Un esempio di risposta: 200 LAST CHUNK={00000029} MULTI (5) ({00000010} DONE_RESPONSE), che indica l'ultimo blocco di dati inviato da questo server virtuale SMTP.

Sink per X-LSA di handler di risposta EHLO

OnServerResponse

Risponde a un comando EHLO in ingresso elencando il comando X-LINK2STATE nella risposta del server

X-EXPS

X-EXPS è un verbo proprietario di Exchange, anche se è simile a AUTH. Non esiste un limite di dimensioni massime per i blocchi di dati o per il numero di blocchi di dati scambiati. La sintassi dei comandi e delle risposte dati dipende dal pacchetto AUTH selezionato, come LOGIN, NTLM, GSSAPI o altri. Per ulteriori informazioni, vedere AUTH RFC.

Anche se EXPS è l'acronimo di Exchange Protocol Security, l'unico protocollo cui fa riferimento è SMTP. Alcuni dei verbi utilizzati in Exchange 2000 Server e Exchange Server 2003 sono proprietari di questi prodotti e sono insieme ai verbi ESMTP. Sono noti come verbi ESMTP X.

Queste funzionalità vengono implementate con cinque sink di evento, come elencati nella seguente tabella. Tutte le estensioni dei protocolli di protezione sono implementate in Exps.dll, che si trova nella directory Programmi\Exchsrvr\bin.

Estensioni di protezione del protocollo X-EXPS

Sink di evento Evento di protocollo Commenti

Sink EXPS-EOD di protezione del protocollo SMTP di Exchange

OnInboundCommand

Segnala la fine del trasferimento dei dati ( _EOD).

Sink EXPS-Aux di protezione del protocollo SMTP di Exchange

OnInboundCommand

Segnala un comando AUTH in ingresso.

Sink EHLO di protezione del protocollo SMTP di Exchange

OnInboundCommand, OnServerResponse

Segnala un comando EHLO in ingresso e risponde a EHLO elencando il comando X-EXPS nella risposta del server.

Sink Mail di protezione del protocollo SMTP di Exchange

OnInboundCommand, OnServerResponse, OnMessageStart

Indica l'inizio del trasferimento dati. Questo sink di evento viene implementato per tutti gli scenari di comandi MAIL rilevanti. Elabora gli eventi che segnalano un comando MAIL in ingresso, rispondono a un comando MAIL in uscita e inviano un comando MAIL in uscita.

Sink EXPS di protezione del protocollo SMTP di Exchange

OnInboundCommand, OnServerResponse, OnSessionStart

Indica l'inizio di una sessione X-EXPS. Questo sink di evento viene implementato per tutti gli scenari di comandi X-EXPS rilevanti. Elabora gli eventi che segnalano un comando X-EXPS in ingresso, rispondono a un comando X-EPS in ingresso e possono inviare un comando X-EXPS in uscita.

Controllo SPAM

Questa funzionalità viene implementata tramite tre sink di evento che elaborano le informazioni su mittente e destinatario delle connessioni SMTP in entrata, come elencato nella tabella seguente. I sink di evento del controllo spam sono implementati in Turflist.dll, che si trova nella directory Programmi\Exchsrvr\bin.

Estensioni SMTP del controllo spam

Sink di evento Evento di protocollo Commenti

Sink di handler del comando RCPT in ingresso

OnInboundCommand

Segnala un comando RCPT in ingresso con un indirizzo del destinatario da verificare.

Sink per TURF di handler del comando MAIL in ingresso

OnInboundCommand

Segnala un comando MAIL in ingresso con un indirizzo del mittente da verificare.

Sink di handler del comando EOD in ingresso

OnInboundCommand

Segnala un comando _EOD in ingresso.

X-ANONYMOUSTLS

Questo parametro è nuovo per Exchange 2007. Consente di selezionare un certificato TSL (Transport Layer Security) anonimo in ingresso o di scegliere un certificato TSL (Transport Layer Security) anonimo in uscita. Exchange esegue una query del servizio directory di Active Directory per recuperare l'identificazione digitale del certificato sul server. L'attributo msExchServerInternalTLSCert sull'oggetto server archivia l'identificazione personale del certificato. Se l'attributo msExchServerInternalTLSCert non può essere letto o se il valore è null, Exchange non annuncia X-ANONYMOUSTLS nella sessione SMTP e non viene caricato nessun certificato.

XLONGADDR

Questo parametro è nuovo per Exchange 2007. Consente al connettore di ricezione di accettare indirizzi di posta elettronica X.400 lunghi. Gli indirizzi di posta elettronica X.400 vengono incapsulati negli indirizzi di posta elettronica SMTP utilizzando il metodo di incapsulamento IMCEA (Internet Mail Connector Encapsulated Address).

Quando il valore di questo parametro è $False, la lunghezza massima per un indirizzo di posta elettronica SMTP completo è 571 caratteri.

Quando il valore di questo parametro è $True, vengono apportate le seguenti modifiche:

  • La parola chiave XLONGADDR viene riportata nella risposta EHLO del connettore di ricezione.

  • La lunghezza di riga accettata di una sessione SMTP viene aumentata a 8.000 caratteri.

  • Gli indirizzi lunghi validi vengono accettati dai comandi SMTP MAIL FROM: e RCPT TO: .

Pertanto, gli indirizzi di posta elettronica X.400 possono contenere fino a 1.860 caratteri dopo l'incapsulamento IMCEA.

L'intervallo di input valido per questo parametro è $True o $False. Il valore predefinito è $False. È possibile modificare questo parametro solo sui connettori di ricezione configurati nei server Trasporto Hub.

XRDST

Questo parametro è nuovo per Exchange 2007. Questa estensione del protocollo viene utilizzata per comunicare una destinazione di routing, associata a un messaggio al server remoto. Se il server remoto non annuncia XRDST e se il messaggio da inviare richiede il supporto XRDST, l'ID evento 2021 MSExchangeTransport  viene registrato nel registro eventi. Il nome simbolico di questo evento è tuple_SmtpSendUnableToTransmitRDst. Questo evento indica che il messaggio non può essere inviato.

EXPS EXCHANGEAUTH GSSAPI NTLM

Questo parametro è nuovo per Exchange 2007. Si tratta delle estensioni dei servizi del connettore di ricezione predefinito che vengono annunciate dopo X-ANONYMOUSTLS.

X-EXCHANGEAUTH SHA256

Questo parametro è nuovo per Exchange 2007. Si tratta delle estensioni dei servizi del connettore di ricezione predefinito che vengono annunciate dopo X-ANONYMOUSTLS.