1. Produk
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS untuk .NET

Baca, buat, dan proses fail Outlook MSG, kontena CFB, dan mesej EML dari .NET — percuma dan sumber terbuka, tanpa kebergantungan Microsoft Outlook.

Perpustakaan .NET Sumber Terbuka untuk Fail MSG, CFB, dan EML

Aspose.Email FOSS untuk .NET ialah perpustakaan C# berlesen MIT, bebas kebergantungan untuk bekerja dengan fail .msg Microsoft Outlook, kontena Compound File Binary (CFB), dan mesej EML. Tambahkan satu pakej NuGet dan terus mula membaca, membuat, serta memproses mesej e-mel tanpa memasang Microsoft Outlook atau mana-mana runtime proprietari.

Perpustakaan menyediakan dua tahap akses. Pada tahap rendah, CfbReader dan CfbWriter memberikan kawalan penuh ke atas kontena binari CFB — menelusuri entri direktori, membaca dan menulis nod storan serta data aliran, dan memeriksa susun atur sektor mentah. MsgReader dan MsgWriter mengendalikan format MSG di atas CFB, memaparkan aliran sifat MAPI, jadual penerima, dan sub‑storans lampiran. Pada tahap tinggi, MapiMessage membolehkan anda mencipta mesej baru dari awal, membaca subjek, badan, penghantar, dan penerima, mengurus lampiran, dan menukar antara format MSG dan EML melalui pelaksanaan MIME terbina dalam.

Pustaka ini menyasarkan .NET 8.0 atau lebih baru dan tidak mempunyai kebergantungan asli, menjadikannya sesuai untuk Windows, Linux, macOS, kontena Docker, dan fungsi tanpa pelayan. Untuk ciri tambahan dan sokongan komersial, lihat Aspose.Email for .NET.

Baca dan Tulis Kontena CFB

  • Buka fail CFB: Muat kontena CFB sedia ada daripada laluan fail, aliran, atau tatasusunan bait melalui CfbReader.FromFile(), CfbReader.FromStream(), atau new CfbReader(data).
  • Lalui pokok direktori: Iterasi storages, streams, dan children menggunakan IterStorages(), IterStreams(), IterChildren(), dan IterTree().
  • Resolve paths: Navigasi hierarki storan bersarang dengan ResolvePath(names) untuk mencari aliran khusus mengikut rantaian nama.
  • Tulis kontena CFB: Bina dokumen CFB secara programatik dengan CfbDocument dan serialisasikan ke bait atau fail melalui CfbWriter.ToBytes() atau CfbWriter.WriteFile().
  • Tambah storan dan aliran: Lampirkan nod CfbStorage dan CfbStream kepada mana-mana nod storan sebelum penserialan.

Di mana Akses CFB Digunakan

  • Pemeriksaan fail MSG: CFB ialah format kontena untuk fail Outlook .msg — akses langsung CFB membolehkan pemeriksaan forensik dan pembaikan.
  • Custom binary formats: Sebarang aplikasi warisan yang menggunakan CFB untuk penyimpanan data boleh dibaca atau ditulis tanpa kebergantungan COM.
  • Data recovery: Lalui keseluruhan pokok direktori dan ekstrak bait aliran mentah dari fail CFB yang rosak atau tidak standard.
  • Ujian pusingan binari: Seriakan dokumen ke bait dan muat semula untuk mengesahkan penserian tanpa kehilangan dalam ujian automatik.

Baca dan Tulis Fail MSG

  • Baca fail MSG: Buka fail Outlook MSG dengan MsgReader.FromFile() atau MsgReader.FromStream() dan akses aliran sifat MAPI yang mendasari, rekod penerima, dan sub-storages lampiran.
  • Tulis fail MSG: Hasilkan fail MSG daripada MsgDocument dengan MsgWriter.ToBytes() atau MsgWriter.WriteFile().
  • Akses MAPI peringkat rendah: Baca aliran sifat peringkat atas, sifat bernama, dan data lampiran melalui MsgStorage, MsgStream, dan MsgStorage.FindStream().
  • Navigasi storan MSG: Gunakan MsgStorage.FindStream() dan MsgStorage.FindStorage() untuk mencari sub‑entrri yang dinamakan.

Di mana Pemprosesan MSG Digunakan

  • Saluran arkib e-mel: Baca secara pukal fail .msg dari direktori arkib dan ekstrak metadata atau lampiran.
  • Alat migrasi: Tukar koleksi MSG kepada format standard untuk import ke dalam sistem bukan-Outlook.
  • Penemuan undang‑undang: Huraikan aliran sifat MAPI mentah untuk mengekstrak semua medan mesej termasuk sifat bukan piawai.
  • Penghantaran laporan automatik: Bina fail .msg secara programatik dan hantar kepada sistem mel berasaskan Outlook.

API Mesej Tingkat Tinggi

  • Buat mesej: Bina e-mel lengkap dengan MapiMessage.Create(subject, body), tetapkan SenderName, SenderEmailAddress, dan HtmlBody.
  • Tambah penerima: Lampirkan To, Cc, dan Bcc penerima melalui AddRecipient() dengan alamat e-mel dan nama paparan.
  • Urus lampiran: Tambah lampiran fail dan aliran dengan AddAttachment() atau bina objek MapiAttachment secara langsung dengan Filename, MimeType, ContentId, dan Data.
  • Simpan dan muat semula: Serialkan dengan message.Save() atau message.Save(stream) dan muat semula dengan MapiMessage.FromFile() atau MapiMessage.FromStream().

Di mana API Tahap Tinggi Digunakan

  • Penjanaan e-mel automatik: Hasilkan beribu-ribu fail MSG yang diperibadikan daripada rekod data dalam kerja kelompok.
  • Penciptaan fixture ujian: Bina fail MSG yang diketahui baik dengan kandungan yang dapat diramalkan untuk suite ujian integrasi.
  • Pengekstrakan lampiran: Muatkan fail MSG, ulang message.Attachments, dan simpan setiap attachment.Data ke cakera.
  • Pemeriksaan harta: Akses message.Subject, message.Body, message.SenderEmailAddress, dan message.Recipients tanpa automasi COM.

Penukaran EML dan MIME

  • Muat EML ke dalam MapiMessage: Huraikan fail .eml standard (RFC 5322 / MIME) menjadi objek MapiMessage penuh melalui MapiMessage.LoadFromEml(stream).
  • Simpan MapiMessage sebagai EML: Seriakan MapiMessage kembali ke format MIME dengan message.SaveToEml() atau message.SaveToEml(stream).
  • Kesetiaan pusingan: Subjek, badan, HTML badan, penghantar, penerima, dan lampiran semuanya dipelihara melalui pusingan EML → MSG → EML.
  • Tiada parser MIME luaran: Penguraian EML dilaksanakan secara asli dalam perpustakaan — tiada kebergantungan System.Net.Mail diperlukan.

Di mana Penukaran EML Digunakan

  • Format bridging: Terima e-mel sebagai EML dari pelayan mel dan tukar kepada MSG untuk penyimpanan serasi Outlook.
  • Pematuhan piawaian: Tukar fail MSG proprietari kepada MIME standard untuk penghantaran ke mana-mana perkhidmatan mel.
  • Normalisasi arkib: Normalisasikan arkib campuran .eml dan .msg fail kepada satu format.
  • Alur kerja pengujian: Jana .eml fixture dalam ujian dan sahkan ia bertahan dalam pusingan MSG tanpa kehilangan data.

Baca Subjek dari Fail MSG

Buka fail Outlook MSG daripada aliran dan cetak subjek — tidak memerlukan Microsoft Outlook.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

Cipta dan Simpan Mesej MSG

Bina e-mel lengkap dengan penghantar, penerima, dan lampiran, kemudian tulis ke fail MSG.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

Tukar EML kepada MSG

Muatkan fail .eml standard dan simpan sebagai fail Outlook .msg menggunakan parser MIME terbina dalam.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

Sokongan dan Sumber Pembelajaran

 Bahasa Melayu