Architettura dell'archivio di Exchange

 

Ultima modifica dell'argomento: 2005-05-23

I server di Exchange archiviano i dati in due file: un file EDB e un file STM. Questi due file costituiscono l'archivio di Exchange. Ad esempio, l'archivio di cassette postali predefinito su un server di Exchange utilizza i file Priv1.edb e Priv1.stm. L'archivio delle cartelle pubbliche predefinito utilizza i file Pub1.edb e Pub1.stm. Il file EDB è costituito da molte tabelle che contengono i metadati di tutti i messaggi di posta elettronica e di altri elementi dell'archivio di Exchange, oltre al contenuto dei messaggi MAPI. Il file EDB è un database ESE, spesso indicato come database basato su MAPI perché viene utilizzato principalmente per archiviare messaggi e allegati MAPI. Il file STM contiene invece il contenuto Internet nativo. Poiché il contenuto Internet sono in formato nativo, non è necessario convertire i messaggi e gli altri elementi in formato Exchange, come accadeva in Exchange 5.5 e versioni precedenti. Anche il file STM è un database ESE, detto anche database di flusso. I file EDB e STM vengono utilizzati in coppia e la firma del database (un numero a 32 bit creato in modo casuale contenente anche l'ora di creazione del database) viene archiviata come intestazione in entrambi i file. Lo schema interno delle pagine STM è archiviato nel file EDB.

Nota

È possibile rinominare i database EDB e STM nonché spostarli in altre directory utilizzando il Gestore del sistema di Exchange. Poiché i file EDB e STM creano insieme un archivio di Exchange completo, è importante tenerli insieme e assegnare loro lo stesso nome con estensioni diverse (cioè EDB e STM).

Exchange Server 2003 utilizza le transazioni per controllare le modifiche nei gruppi di archiviazione. Queste transazioni vengono registrate in un registro delle transazioni in modo analogo a quello con cui le transazioni vengono archiviate nei database tradizionali. Le modifiche vengono salvate o annullate a seconda dell'esito della transazione. Se si verifica un errore, per ripristinare un database, è possibile utilizzare i registri delle transazioni, insieme ai file di database e, in alcuni casi, ai file dei punti di arresto. La struttura che gestisce le transazioni è il servizio Archivio informazioni di Microsoft Exchange (Store.exe). Tutte le voci del registro relative alle transazioni non salvate sono considerate parte del database di Exchange corrente, come illustrato nella seguente figura.

c236b0b1-1e8b-4f56-9643-4813d0d54acc

In Exchange Server 2003 sono disponibili i seguenti due tipi di database:

  • Database degli archivi privati   Questi database vengono utilizzati per archiviare cassette postali e code di messaggi per i connettori di messaggistica basati su MAPI.
  • Database degli archivi pubblici   Questi database vengono utilizzati per archiviare le gerarchie e i contenuti delle cartelle pubbliche.

Nella seguente figura viene illustrata l'architettura interna dell'archivio di Exchange. Il servizio Archivio informazioni di Microsoft Exchange (Store.exe) utilizza il modulo ESE (Extensible Storage Engine) per accedere ai file di database nel file system e per fornire accesso ai dati tramite varie interfacce quali MAPIsvr, ExPOP, ExIMAP, ExSMTP ed ExOLEDB. Le applicazioni client e le interfacce di programmazione delle applicazioni, ad esempio CDOEX (Collaboration Data Objects for Exchange), possono utilizzare queste interfacce o comunicare con il modulo del database di messaggistica (MDB).

40668745-b91e-4505-a7b9-ab88974a9ad0

Gruppi di archiviazione

Ciascun gruppo di archiviazione comprende un insieme di file di registro e altri file ausiliari (database interni temporanei, file dei punti di arresto e registri riservati) per tutti i database (file EDB e file STM) nel gruppo di archiviazione. In Exchange Server 2003 sono supportati più gruppi di archiviazione e più database in ciascun gruppo di archiviazione. In Exchange Server 2003 un singolo server può supportare fino a quattro gruppi di archiviazione, ciascuno dei quali può supportare fino a cinque database. Il supporto per più database consente di distribuire più cassette postali e cartelle pubbliche in molti database di dimensioni minori per semplificarne la gestione. Exchange 2000 Server ed Exchange Server 2003 possono supportare fino a 20 database di cassette postali e cartelle pubbliche su un singolo server.

Architettura dei gruppi di archiviazione

Come illustrato nella seguente figura, tutti i gruppi di archiviazione sono ospitati dallo stesso processo Store.exe. Ciascun gruppo di archiviazione è rappresentato da un'istanza ESE.

6ff925c2-ec78-489a-b8ed-30891a3d25f2

All'interno di ciascun gruppo di archiviazione, ogni coppia di database EDB e STM rappresenta un archivio di cassette postali o di cartelle pubbliche. Come illustrato nella figura 10.3, tutti gli archivi di cassette postali e di cartelle pubbliche di un gruppo di archiviazione specifico condividono un insieme comune di file di registro e altri file di sistema. Questi file consentono l'elaborazione basata su transazioni.

I file di registro e gli altri file di sistema di ciascun gruppo di archiviazione vengono utilizzati come descritto di seguito.

  • <Prefisso registro>xxx.chk   Questo è il file dei punti di arresto (ad esempio E00.chk) che identifica le transazioni che devono essere elaborate e spostate dai file di registro delle transazioni ai database. I file dei punti di arresto vengono aggiornati quando il modulo ESE scrive una determinata transazione in un file di database sul disco. Dopo l'aggiornamento il file dei punti di arresto punta sempre all'ultima transazione che è stata trasferita correttamente al database. Questo aggiornamento costituisce un meccanismo rapido di recupero. I file dei punti di arresto non sono tuttavia strettamente necessari per salvare le transazioni nei database. Il modulo ESE è in grado di elaborare direttamente i file di registro delle transazioni e di stabilire quali transazioni non sono ancora state trasferite. Questo metodo richiede molto più tempo rispetto all'utilizzo dei punti di arresto.

    Nota

    Il modulo ESE garantisce che le transazioni non vengano scritte più volte nel database.

  • Exx.log   File del registro delle transazioni corrente del gruppo di archiviazione che consente al modulo ESE di gestire l'archiviazione dei dati in modo efficiente e veloce. Il modulo ESE archivia le nuove transazioni, ad esempio il recapito di un messaggio, contemporaneamente sia nella cache della memoria che nel registro delle transazioni. I dati vengono scritti in sequenza. I nuovi dati vengono aggiunti a quelli esistenti senza la necessità di complesse operazioni sui database. Successivamente, le transazioni vengono trasferite in gruppo dalla cache della memoria ai database reali, aggiornandoli.
    In base all'impostazione predefinita, il gruppo di archiviazione predefinito Primo gruppo di archiviazione utilizza il prefisso E00, generando il file di registro delle transazioni E00.log. Il file E00.log viene utilizzato per tutti gli archivi di cassette postali e cartelle pubbliche del gruppo di archiviazione. Se si creano gruppi di archiviazione aggiuntivi, il numero del prefisso viene incrementato in E01, E02 ed E03.

  • <Prefisso registro>XXXXX.log   File di registro delle transazioni che non contengono spazio sufficiente per altri dati. In base all'impostazione predefinita, la dimensione dei file di registro delle transazioni è sempre 5.242.880 byte (cinque MB). Sebbene sia teoricamente possibile modificare la dimensione del file di registro, non è consigliabile farlo. Quando il registro è pieno, viene rinominato per consentire la creazione di un nuovo file di registro delle transazioni vuoto. Ai file di registro delle transazioni rinominati viene assegnato un nome nel formato <Prefisso registro>XXXXX.log> (ad esempio, E00XXXXX.log), dove XXXXX è un numero esadecimale di cinque cifre compreso tra 00000 e FFFFF. I file di registro precedenti risiedono nella stessa directory del file di registro delle transazioni corrente.

  • Res1.log e Res2.log   File di registro delle transazioni riservati del gruppo di archiviazione utilizzati come archivi di emergenza per le transazioni che forniscono lo spazio su disco sufficiente per scrivere una transazione dalla memoria al disco rigido anche nel caso in cui il disco del server sia troppo pieno per consentire la scrittura di nuove transazioni in un file di registro. I file di registro riservati sono contenuti nella directory del registro delle transazioni. Questi file vengono creati automaticamente al momento dell'inizializzazione dei database e non possono essere creati successivamente.
    Il modulo ESE utilizza i file di registro delle transazioni riservati solo per completare il processo della transazione in corso. Invia quindi una notifica di errore a Store.exe per consentire la rimozione sicura dell'archivio di Exchange. Il registro eventi applicazioni contiene una voce che descrive il problema. In questo caso è necessario liberare spazio su disco, ad esempio aggiungendo un altro disco rigido, prima di installare nuovamente il database.

  • Tmp.edb   Spazio di lavoro temporaneo utilizzato per l'elaborazione delle transazioni. Il file Tmp.edb contiene informazioni temporanee che vengono eliminate quando tutti gli archivi del gruppo di archiviazione vengono rimossi o quando il servizio Archivio informazioni di Exchange viene arrestato.

    Nota

    Il file Tmp.edb non viene incluso nei backup in linea.

  • <nome file>.edb   File di database in formato RTF relativi ad archivi privati o pubblici. Il file di database in formato RTF dell'archivio privato predefinito è Priv1.edb. Il file dell'archivio pubblico predefinito è Pub1.edb.

  • <nome file>.stm   File di flusso di contenuto Internet dei singoli database. Il file di database di flusso dell'archivio privato predefinito è Priv1.stm. Il file dell'archivio pubblico predefinito è Pub1.stm.

Attributi del gruppo di archiviazione di Active Directory

È possibile determinare il percorso del file di registro delle transazioni di un gruppo di archiviazione e il nome del file di registro nel Gestore di sistema di Exchange. Fare clic con il pulsante destro del mouse sul gruppo di archiviazione desiderato, scegliere Proprietà, quindi nella scheda Generale leggere le informazioni contenute nei campi Posizione registro transazioni e Prefisso file registro. Utilizzare i pulsanti Sfoglia per spostare il registro delle transazioni e i file di sistema in una nuova posizione; ad esempio su un'unità fisica diversa.

Le impostazioni di configurazione del gruppo di archiviazione sono archiviate in Active Directory. Per utilizzare Modifica ADSI per individuare l'oggetto Directory di un gruppo di archiviazione, aprire i contatti che contengono il nome della configurazione, espandere il nodo dei servizi e CN=Microsoft Exchange, quindi espandere l'oggetto Organizzazione di Exchange, il gruppo amministrativo e il contenitore del server. Nella sezione sottostante è presente il contenitore CN=InformationStore che contiene i gruppi di archiviazione, ad esempio CN=Primo gruppo di archiviazione. La classe degli oggetti del gruppo di archiviazione è msExchStorageGroup. Se si prevede di utilizzare script personalizzati per gestire le risorse degli archivi di Exchange, è possibile accedere agli oggetti msExchStorageGroup utilizzando ADSI (Active Directory Service Interfaces).

Nel seguente codice di esempio viene illustrato come accedere al gruppo di archiviazione predefinito sul server SERVER01 nell'organizzazione di Exchange Contoso. Nell'esempio viene indicato il percorso corrente dei file di registro delle transazioni del gruppo di archiviazione specificato.

strStorageGroupDN = "CN=First Storage Group," _
                  & "CN=InformationStore," _
                  & "CN=SERVER01,CN=Servers," _
                  & "CN=First Administrative Group," _
                  & "CN=Administrative Groups," _
                  & "CN=Contoso,CN=Microsoft Exchange," _
                  & "CN=Services,CN=Configuration," _
                  & "DC=Contoso,DC=com"
Set oStorageGroup = GetObject("LDAP://" & strStorageGroupDN)
MsgBox oStorageGroup.Get("msExchESEParamLogFilePath")

Di seguito è riportato un elenco di attributi di Exchange degli oggetti msExchStorageGroup utilizzabili negli script personalizzati basati su ADSI:

  • msExchESEParamCircularLog   Flag booleano che specifica se la registrazione circolare è abilitata o meno. Il valore 0 indica che la registrazione circolare è disabilitata, mentre il valore 1 indica che è abilitata.
    Se la registrazione circolare è abilitata, il modulo ESE elimina le transazioni quando le modifiche salvate vengono trasmesse al file di database sul disco. Il file dei punti di arresto indica quali file di registro e voci delle transazioni sono state salvate correttamente nel database. Tutti i registri precedenti vengono eliminati, mentre le transazioni contenute nel file di registro delle transazioni corrente vengono contrassegnate come obsolete. Le nuove transazioni vengono scritte sulle voci obsolete nel registro delle transazioni corrente prima che venga creato un nuovo file di registro.

    Nota

    Eliminando le transazioni precedenti, la registrazione circolare riduce l'utilizzo dello spazio su disco. Tuttavia, la registrazione circolare non è compatibile con le sofisticate configurazioni a tolleranza di errore e con vari tipi di backup in linea che richiedono la presenza dei registri delle transazioni precedenti. Se la registrazione circolare è abilitata, è possibile eseguire solo backup completi, ma non backup che utilizzano file di registro delle transazioni, ad esempio backup differenziali o incrementali. Poiché non è possibile riprodurre i file di registro delle transazioni durante il ripristino dei dati, non è possibile ripristinare dati successivi all'ultimo backup. Se invece le transazioni non vengono automaticamente eliminate tramite la registrazione circolare, è talvolta possibile ripristinare dati successivi all'ultimo backup eseguendo nuovamente le transazioni ancora presenti sul disco rigido. Sebbene la registrazione circolare fosse abilitata per impostazione predefinita in Exchange Server 5.5, in Exchange 2000 Server ed Exchange Server 2003 è disabilitata.

  • msExchESEParamEventSource   Stringa del descrittore del processo indipendente dalla lingua che punta alla chiave del servizio Archivio informazioni di Microsoft Exchange (MsExchangeIS) nel Registro di sistema nella directory HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.

  • msExchESEParamLogFilePath   Questo attributo specifica il percorso dei file di registro delle transazioni del gruppo di archiviazione (ad esempio C:\Programmi\Exchsrvr\mdbdata).

  • msExchESEParamLogFileSize   Questo attributo specifica la dimensione del file di registro in kilobyte (KB). Il valore predefinito è 5120 e non deve essere mai modificato.

  • msExchESEParamSystemPath   Questo attributo specifica il percorso del file dei punti di arresto (ad esempio C:\Programmi\Exchsrvr\mdbdata), oltre al percorso di tutti i database temporanei eventualmente presenti.

  • msExchESEParamZeroDatabaseDuringBackup   Flag booleano che specifica se i record eliminati e i valori lunghi devono essere sostituiti da zero durante le operazioni di backup. Il valore 0 indica che i record non vengono sovrascritti. Il valore 1 indica che i database vengono sovrascritti con zero.

  • msExchESEParamEnableOnlineDefrag   Flag booleano che specifica se il servizio Archivio informazioni di Microsoft Exchange deve eseguire la deframmentazione in linea dei database. Il valore 0 indica che non deve essere eseguita alcuna deframmentazione in linea. Il valore 1 indica che la deframmentazione in linea viene eseguita durante i cicli di manutenzione pianificati.

    Nota

    La deframmentazione in linea libera spazio nei database ma non riduce la dimensione dei file di database. I problemi di coerenza vengono corretti a ogni avvio o arresto del server in un processo noto come ripristino software.

  • msExchESEParamEnableIndexChecking   Flag booleano che specifica se deve essere verificata o meno la presenza di indici Unicode nella versione del sistema operativo. Il valore 0 indica che non viene controllata la presenza di indici. Il valore 1 indica che viene controllata la presenza di indici. Questo parametro rileva eventuali modifiche del sistema operativo risultanti dall'aggiornamento a una versione più recente o dall'applicazione di un Service Pack. Questo controllo verifica se la sequenza di ordinamento per Unicode è stata modificata o meno. Ogni volta che il sistema operativo viene modificato in questo modo, viene effettuata automaticamente la reindicizzazione.

  • msExchESEParamBaseName   Questo attributo specifica il nome di base dei file di registro del gruppo di archiviazione. Ad esempio, un nome di base E00 genera il nome E00.log per il file di registro delle transazioni.

  • msExchESEParamDbExtensionSize   Questo attributo specifica la dimensione dell'estensione del database in pagine. Il valore predefinito è 2 MB.

  • msExchESEParamPageTempDBMin   Questo attributo specifica la dimensione minima del database temporaneo in pagine. Il valore predefinito è 0.

  • msExchESEParamCheckpointDepthMax   Questo attributo specifica la profondità massima del punto di arresto preferita (non hardware) in byte.

Requisiti di spazio minimo su disco del gruppo di archiviazione

Ciascun gruppo di archiviazione richiede circa 50 MB di spazio libero su disco. I file elencati in precedenza, richiesti dal gruppo di archiviazione, occupano almeno 11 MB di spazio su disco. Lo spazio minimo su disco richiesto per gli archivi privati e pubblici è pari rispettivamente a 5 MB e 8 MB. Sebbene lo spazio su disco complessivo utilizzato sia di 24 MB, è necessario riservare ulteriore spazio per l'effettiva creazione del gruppo di archiviazione e per le operazioni di lettura e scrittura.

Per l'utilizzo dei gruppi di archiviazione è necessario tenere presente quanto segue.

  • Un server con Exchange Server 2003 può contenere fino a cinque gruppi di archiviazione. Poiché uno dei gruppi di archiviazione è riservato alle operazioni di ripristino del database, è possibile utilizzare solo un massimo di quattro gruppi di archiviazione per i database accessibili dai client. Se si tenta di creare più di quattro gruppi di archiviazione, viene visualizzato un messaggio di errore.
  • È possibile creare solo cinque database in un gruppo di archiviazione. Se si tenta di creare un numero maggiore di database, viene visualizzato un messaggio di errore.

Database dell'archivio di Exchange

Exchange Server utilizza ESE come modulo del database incorporato per specificare la struttura dei database e gestire la memoria. Il modulo del database memorizza i database nella cache trasferendo gruppi di quattro kilobyte di dati (pagine) dalla e nella memoria. Il modulo aggiorna le pagine in memoria e scrive le pagine nuove o aggiornate sul disco. Quando il sistema riceve una richiesta, il modulo del database può salvare i dati nella memoria buffer per evitare di dover accedere continuamente al disco. Ciò rende il sistema più efficiente poiché l'operazione di scrittura in memoria è circa 200.000 volte più veloce della scrittura su disco. Quando gli utenti inviano richieste, il modulo del database inizia a caricare le richieste nella memoria, contrassegnando le pagine come modificate. Una pagina modificata è una pagina in memoria che contiene dati. Queste pagine vengono successivamente scritte nei database del servizio Archivio informazioni di Microsoft Exchange su disco.

Sebbene la memorizzazione dei dati nella cache rappresenti il sistema più veloce ed efficiente per elaborare i dati, i dati sul disco non sono aggiornati mentre Exchange è in esecuzione. Poiché la versione più recente del database si trova in memoria e le modifiche salvate in memoria non sono ancora state scritte su disco, il database e la memoria non sono sincronizzati. Se la memoria contiene pagine modificate non ancora trasferite e scritte su disco, i database vengono contrassegnati come incoerenti. I database di Exchange vengono sincronizzati solo quando tutte le pagine modificate contenute nella memoria vengono trasferite su disco. Ciò si verifica nel momento in cui si arresta correttamente il servizio Archivio informazioni di Microsoft Exchange. Durante il processo di arresto, il servizio Archivio informazioni di Microsoft Exchange trasferisce tutte le pagine sul disco.

File di database MAPI

Il file di database MAPI di Exchange Server 2003 è costituito dalle tabelle che contengono i metadati di tutti i messaggi di posta elettronica e di altri oggetti del database, oltre al contenuto dei messaggi MAPI. Ciascuna cartella visualizzata in Microsoft Office Outlook rappresenta una tabella del database distinta dell'archivio di Exchange. Ciascun criterio di ordinamento utilizzato per visualizzare queste cartelle è rappresentato da un indice distinto della tabella. I criteri di ordinamento sono gestiti dal processo Store.exe.

I messaggi inviati da client MAPI quali Outlook vengono archiviati nel database MAPI, come per le versioni precedenti di Exchange Server. Ciò consente ai client basati su MAPI di accedere ai messaggi senza doverli convertire. Tuttavia, se un client basato su un protocollo Internet tenta di leggere un messaggio nel database, il messaggio viene convertito nel formato richiesto.

Il file EDB tradizionale e il relativo file STM costituiscono un'unica entità, ciascuno di questi file è di poca utilità senza l'altro. Tuttavia, è importante sapere che un database del servizio Archivio informazioni di Microsoft Exchange Server contiene due file, il file EDB e il file STM.

Un record del file EDB contiene una colonna (con tipo di dati JET_coltypSLV) che fa riferimento a un elenco di pagine nel file di flusso che contiene i dati raw. Il file EDB contiene dati sull'utilizzo dello spazio (pari a un massimo di quattro kilobyte di numeri di pagine) e i dati di checksum dei dati del file di flusso.

File di database di flusso

Exchange Server 5.5 e le versioni precedenti archiviavano i messaggi nel database in formato MDBEF (Message Database Encapsulated Format), il formato nativo dei client Outlook. Se un client non MAPI richiede un messaggio, il servizio Archivio informazioni di Microsoft Exchange converte il contenuto dal formato MDBEF nel formato appropriato a seconda della richiesta del client. Questa conversione comporta l'utilizzo della larghezza di banda del processore e la riduzione delle prestazioni del server.

Le versioni successive del modulo ESE consentono ai client di messaggistica Internet di archiviare dati raw in formato nativo. L'archivio di questi dati raw viene denominato database di flusso o semplicemente file di flusso. Il file di flusso non contiene una distribuzione bilanciata (struttura b-tree), bensì due pagine da quattro kilobyte di informazioni di intestazione e i dati raw in pagine da quattro kilobyte. Questa struttura dati lineare è adatta per oggetti binari di grandi dimensioni (BLOB) che in genere non richiedono una conversione e che possono essere ricevuti e trasmessi molto rapidamente.

Promozione delle proprietà

La promozione delle proprietà consente di stabilire dove archiviare i dati nel database ESE e rappresenta perciò un concetto molto importante. Il servizio Archivio informazioni di Microsoft Exchange supporta la promozione delle proprietà dei dati dal file STM al file EDB. La promozione delle proprietà consente una gestione efficiente delle visualizzazioni delle cartelle e degli indici. Ad esempio, un messaggio inviato al file STM ha proprietà specifiche quali mittente, oggetto, date di invio e ricezione, promosse a record che rappresentano il messaggio nel file EDB.

Quando un client MAPI quale Microsoft Outlook invia un messaggio al servizio Archivio informazioni di Microsoft Exchange, il contenuto del messaggio viene archiviato nel file EDB. Se il messaggio viene aperto da un client non MAPI, il servizio Archivio informazioni di Microsoft Exchange effettua una conversione immediata del contenuto MAPI in formato Internet tramite alcune operazioni di conversione e chiamando IMAIL, che a sua volta chiama RTFHTML per completare la conversione. Nessuna conversione è permanente, ossia i dati non vengono estratti dal file EDB e scritti nel file STM.

Se un client Internet invia un messaggio al servizio Archivio informazioni di Microsoft Exchange, il contenuto del messaggio viene archiviato nel file STM. Alcune intestazioni del messaggio Internet vengono duplicate nel file EDB per consentire al servizio Archivio informazioni di Microsoft Exchange di trovare il messaggio. Questa operazione viene denominata conversione di stato 0.

Se uno dei client richiede una proprietà, ad esempio PR_Subject, o uno dei numerosi alias, il servizio Archivio informazioni di Microsoft Exchange promuove tutte le informazioni di intestazione del messaggio Internet a proprietà. Questa operazione viene denominata conversione di stato 1.

Se un client richiede informazioni relative a un allegato, il servizio Archivio informazioni di Microsoft Exchange crea un duplicato simile (in formato MAPI) del messaggio Internet. Inizialmente il messaggio rimane nel file STM, ma la maggior parte dei dati necessari per l'accesso MAPI è contenuta nel file EDB. Se il client cambia il messaggio modificandone l'estensione MIME (Multipurpose Internet Mail Extensions), la versione del file STM del messaggio viene eliminata mentre il file EDB del messaggio viene conservato. Questa operazione viene denominata conversione di stato 2.

Indipendentemente dalla modalità di invio di un messaggio al servizio Archivio informazioni di Microsoft Exchange, Exchange Server riceve il contenuto Internet che include il contenuto Application/ms-tnef. Il messaggio viene inizialmente inviato al file STM, quindi immediatamente decodificato e spostato nel file EDB. La stessa operazione viene effettuata per i messaggi con un allegato winmail.dat codificati in formato UUEncode. I formati TNEF (Transport Neutral Encapsulation Format) e Winmail.dat sono metodi di incapsulamento dei messaggi MAPI che consentono di proteggere le proprietà MAPI per le trasmissioni che non supportano il formato MAPI. Quindi, il principio generale secondo cui i messaggi MAPI risiedono nel file EDB mentre i messaggi Internet risiedono nel file STM è valido. Il formato TNEF viene decodificato prima che le proprietà MAPI vengano lette.