PST (Personal Storage Table) adalah format file penyimpanan yang digunakan oleh berbagai program Microsoft seperti MS Outlook, Exchange, dan Windows Messaging. File PST dapat menyimpan pesan, kontak, kalender, acara, dll. Dalam kasus tertentu, Anda mungkin perlu mengurai file PST dan mengekstrak data darinya secara terprogram. Untuk mencapainya, artikel ini menunjukkan cara membaca file MS Outlook PST menggunakan C# .NET. Khususnya, Anda akan mempelajari cara mengekstrak informasi folder, membaca email, dan mengambil kontak dari file PST.
- .NET API untuk Membaca File Outlook PST
- Baca File PST di C#
- Baca Email dari File PST
- Ekstrak Kontak dari File PST
.NET API untuk Membaca File Outlook PST
Aspose.Email for .NET adalah API pemrosesan email canggih yang memungkinkan Anda membuat dan mengirim email dari dalam aplikasi .NET. Selain itu, ini mendukung bekerja dengan email populer dan format file penyimpanan. Kami akan menggunakan API ini untuk membaca informasi folder, pesan, dan kontak dari file PST. Anda dapat mengunduh API atau menginstalnya melalui NuGet.
PM> Install-Package Aspose.Email -Version 22.3.0
Baca File Outlook PST di C# .NET
Berikut ini adalah langkah-langkah untuk membaca file PST dan mengekstrak informasinya di C#.
- Muat file PST menggunakan metode PersonalStorage.FromFile().
- Dapatkan koleksi folder di PST menggunakan metode PersonalStorage.RootFolder.GetSubFolders().
- Ambil informasi folder seperti nama, jumlah item, dll.
Contoh kode berikut menunjukkan cara mengurai file PST dan mengambil informasi folder.
// Muat file PST
PersonalStorage personalStorage = PersonalStorage.FromFile("PersonalStorage.pst");
// Dapatkan informasi folder
FolderInfoCollection folderInfoCollection = personalStorage.RootFolder.GetSubFolders();
// Jelajahi setiap folder untuk menampilkan informasinya
foreach (FolderInfo folderInfo in folderInfoCollection)
{
Console.WriteLine("Folder: " + folderInfo.DisplayName);
Console.WriteLine("Total items: " + folderInfo.ContentCount);
Console.WriteLine("Total unread items: " + folderInfo.ContentUnreadCount);
Console.WriteLine("-----------------------------------");
}
Baca Email dari File PST di C#
Email adalah entitas utama yang disimpan dalam file PST oleh MS Outlook. Jadi mari kita lihat cara membaca pesan email dari file PST di C#.
- Muat file PST menggunakan metode PersonalStorage.FromFile().
- Akses folder root menggunakan properti PersonalStorage.RootFolder.
- Dapatkan koleksi pesan menggunakan metode FolderInfo.GetContents().
- Telusuri pesan dalam koleksi dan baca setiap bidang pesan.
Contoh kode berikut menunjukkan cara mengekstrak pesan dari file PST di C# .NET.
// Muat file Outlook PST
PersonalStorage pst = PersonalStorage.FromFile("PersonalStorage.pst");
// Dapatkan Format Tampilan file PST
Console.WriteLine("Display Format: " + pst.Format);
// Dapatkan informasi folder dan pesan
Aspose.Email.Storage.Pst.FolderInfo folderInfo = pst.RootFolder;
// Panggil metode rekursif untuk mengekstrak file msg dari setiap folder
ExtractMsgFiles(folderInfo, pst);
///<summary>
/// Ini adalah metode rekursif untuk menampilkan isi folder
///</summary>
///<param name="folderInfo"></param>
///<param name="pst"></param>
private static void ExtractMsgFiles(Aspose.Email.Storage.Pst.FolderInfo folderInfo, PersonalStorage pst)
{
// Menampilkan nama folder
Console.WriteLine("Folder: " + folderInfo.DisplayName);
Console.WriteLine("==================================");
// Ulangi semua pesan di folder ini
Aspose.Email.Storage.Pst.MessageInfoCollection messageInfoCollection = folderInfo.GetContents();
foreach (Aspose.Email.Storage.Pst.MessageInfo messageInfo in messageInfoCollection)
{
Console.WriteLine("Saving message {0} ....", messageInfo.Subject);
// Dapatkan pesan dalam contoh MapiMessage
MapiMessage message = pst.ExtractMessage(messageInfo);
// Simpan pesan ini ke disk dalam format pesan
message.Save(message.Subject.Replace(":", " ") + ".msg");
// Simpan pesan ini untuk streaming dalam format pesan
MemoryStream messageStream = new MemoryStream();
message.Save(messageStream);
}
// Panggil metode ini secara rekursif untuk setiap subfolder
if (folderInfo.HasSubFolders == true)
{
foreach (Aspose.Email.Storage.Pst.FolderInfo subfolderInfo in folderInfo.GetSubFolders())
{
ExtractMsgFiles(subfolderInfo, pst);
}
}
}
Ekstrak Kontak dari File PST di C#
Dalam kasus tertentu, Anda mungkin perlu mengekstrak informasi kontak yang disimpan dalam file PST. Langkah-langkah berikut menunjukkan cara mengakses kontak di file PST di C#.
- Muat file PST menggunakan metode PersonalStorage.FromFile().
- Dapatkan referensi folder kontak menggunakan metode PersonalStorage.RootFolder.GetSubFolder(“Contacts”).
- Dapatkan kumpulan kontak menggunakan metode FolderInfo.GetContents().
- Ulangi koleksi kontak dan baca setiap kontak atau simpan.
Contoh kode berikut menunjukkan cara mengekstrak kontak dari file PST di C#.
// Muat file Outlook PST
PersonalStorage personalStorage = PersonalStorage.FromFile("SampleContacts.pst");
// Dapatkan folder Kontak
FolderInfo folderInfo = personalStorage.RootFolder.GetSubFolder("Contacts");
// Ulangi semua kontak di folder ini
MessageInfoCollection messageInfoCollection = folderInfo.GetContents();
foreach (MessageInfo messageInfo in messageInfoCollection)
{
// Dapatkan informasi kontak
MapiMessage mapi = personalStorage.ExtractMessage(messageInfo);
// Transmisikan ke MapiContact
MapiContact contact = (MapiContact)mapi.ToMapiMessageItem();
// Menampilkan beberapa konten di layar
Console.WriteLine("Name: " + contact.NameInfo.DisplayName);
// Simpan ke disk dalam format MSG
if (contact.NameInfo.DisplayName != null)
{
MapiMessage message = personalStorage.ExtractMessage(messageInfo);
// Singkirkan karakter ilegal yang tidak dapat digunakan sebagai nama file
string messageName = message.Subject.Replace(":", " ").Replace("\\", " ").Replace("?", " ").Replace("/", " ");
message.Save(dataDir + "Contacts\\" + messageName + "_out.msg");
}
}
Dapatkan Lisensi API Gratis
Anda dapat mencoba Aspose.Email for .NET secara gratis dengan mendapatkan lisensi sementara.
Kesimpulan
Pada artikel ini, Anda telah mempelajari cara membaca file PST secara terprogram di C# .NET. Selain itu, Anda telah melihat cara membaca informasi folder, mengambil email, dan mengekstrak kontak dari file PST di C#. Selain itu, Anda dapat mempelajari lebih lanjut tentang Aspose.Email for .NET menggunakan dokumentasi. Selain itu, Anda dapat membagikan pertanyaan atau pertanyaan Anda di forum kami.