Read MS Outlook PST Files in C# .NET

Un Thread di Conversazione è una sequenza di risposte a un messaggio con un argomento comune. I messaggi all’interno della conversazione possono essere visualizzati in vari modi, come in ordine gerarchico o cronologico. Per visualizzare un thread di messaggi, le applicazioni di posta elettronica identificano le risposte ai messaggi. I formati di file e-mail più popolari forniscono questa funzionalità.
I thread di conversazione consentono ai lettori di comprendere rapidamente la struttura complessiva di una conversazione, evidenziare determinati punti delle conversazioni e analizzare informazioni importanti. In questo articolo ci concentreremo su come utilizzare le funzionalità PST/MAPI di Aspose.Email per trovare e raggruppare messaggi per conversazione. Per fare ciò, implementeremo un codice di esempio che attraverserà i messaggi in una cartella data, li raggrupperà per conversazione e poi salverà ciascuna conversazione in una directory separata su disco.

Proprietà MAPI utilizzate per supportare il Thread di Conversazione

Poiché i messaggi in PST sono memorizzati come un insieme di proprietà MAPI, dobbiamo definire le proprietà MAPI associate alla raccolta delle risposte ai messaggi. Questo è descritto nella sezione Microsoft Docs. Come si può vedere, la proprietà PidTagConversationIndex consente di determinare con precisione se un messaggio è associato a una certa conversazione o meno. La proprietà indica anche la posizione relativa del messaggio all’interno di un thread di conversazione. Visita la pagina per ulteriori informazioni sulla proprietà PidTagConversationIndex. L’intestazione è i primi 22 byte del valore della proprietà PidTagConversationIndex. È una porzione di dati per determinare se il messaggio appartiene a un certo thread di conversazione.

API C# .NET per leggere file PST di Outlook

Per leggere file PST, utilizzeremo Aspose.Email per .NET. È una libreria fantastica per implementare applicazioni di elaborazione e-mail utilizzando .NET. Utilizzando la libreria, puoi gestire facilmente molti formati di file e-mail diversi. Puoi installare Aspose.Email per .NET tramite NuGet o scaricare il suo DLL.

PM> Install-Package Aspose.Email

Raggruppa messaggi in PST per thread di conversazione

Per raggruppare i messaggi in PST per conversazioni, abbiamo bisogno di quanto segue:

  • Prima di tutto, crea una classe ConversationThread. È un contenitore per raggruppare i messaggi all’interno di una conversazione.
  • Poi, crea un metodo per cercare e raggruppare i messaggi per conversazione.
  • Infine, crea un metodo per salvare il thread di conversazione in una directory separata.

Crea una classe ConversationThread

Avrà le seguenti proprietà.

  • Id: rappresentazione stringa dell’intestazione dell’indice di conversazione (22 byte).
  • Messages: elenco degli ID dei messaggi che si trovano nel thread di conversazione.

Crea un metodo per cercare e raggruppare i messaggi per conversazione

Dopo aver creato la classe ConversationThread, possiamo concentrarci sulla scrittura di un metodo che faccia quanto segue:

  • Scorrere tutti i messaggi nella cartella. Per motivi di prestazioni, leggeremo solo l’identificatore del messaggio utilizzando il metodo EnumerateMessagesEntryId.
  • Per ogni messaggio estrarremo la proprietà PidTagConversationIndex utilizzando il metodo ExtractProperty.
  • I messaggi che hanno i primi 22 byte dello stesso valore della proprietà PidTagConversationIndex appartengono alla stessa conversazione. Aggiungeremo l’ID del messaggio all’elenco rappresentato dalla proprietà Messages dell’istanza corrispondente della classe ConversationThread.
  • Restituire l’elenco delle istanze di ConversationThread.

Crea un metodo per salvare il thread di conversazione in una directory separata

Infine, salviamo le conversazioni nelle directory.

Per ogni istanza di ConversationThread, fare quanto segue:

  • Crea una directory separata con il nome dell’argomento del thread.
  • Elenca gli identificatori nella proprietà ConversationThread.Messages, per ciascun identificatore estrai un messaggio utilizzando il metodo ExtractMessage e salva il messaggio nella directory creata utilizzando il metodo Save.

Ottieni una Licenza API Gratuita

Puoi utilizzare Aspose.Email per .NET senza limitazioni di valutazione utilizzando una licenza temporanea gratuita.

Conclusione

Questo articolo mostra come utilizzare Aspose.Email per cercare messaggi correlati a conversazioni in PST. Esplorando ulteriormente la documentazione PidTagConversationIndex puoi anche complicare l’implementazione aggiungendo, ad esempio, ordinamenti gerarchici dei messaggi di conversazione. Puoi saperne di più su Aspose.Email utilizzando la documentazione. In caso di domande, puoi postare nel nostro forum.

Vedi Anche