1. Produk
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS untuk C++

Baca, buat, dan proses file Outlook MSG serta kontainer CFB dari C++ — gratis dan sumber terbuka, tanpa ketergantungan Microsoft Outlook.

Perpustakaan C++ Open-Source untuk File MSG dan CFB

Aspose.Email FOSS untuk C++ adalah perpustakaan C++ sumber terbuka berlisensi MIT yang digunakan untuk bekerja dengan file .msg Microsoft Outlook dan kontainer Compound File Binary (CFB). Sertakan header melalui CMake dan segera mulai membaca, membuat, serta memproses pesan email tanpa menginstal Microsoft Outlook atau runtime proprietari apa pun.

Pustaka menyediakan dua tingkat akses. Pada tingkat rendah, cfb_reader dan cfb_writer memberikan kontrol penuh atas kontainer biner CFB — menelusuri entri direktori, membaca dan menulis node penyimpanan serta data aliran, dan memeriksa tata letak sektor mentah. msg_reader dan msg_writer menangani format MSG di atas CFB, menampilkan aliran properti MAPI, tabel penerima, dan sub‑penyimpanan lampiran. Pada tingkat tinggi, mapi_message memungkinkan Anda membuat pesan baru dari awal, membaca subjek, isi, penerima, dan lampiran, serta mengonversi antara format MSG dan EML. Perpustakaan ini dibangun di platform apa pun dengan kompiler C++17 dan tidak memiliki dependensi eksternal, menjadikannya cocok untuk Windows, Linux, macOS, kontainer Docker, dan sistem tertanam. Edisi enterprise dengan fitur tambahan ditawarkan sebagai Aspose.Email for C++.

Baca dan Tulis Kontainer CFB

  • Buka file CFB: Muat kontainer CFB yang ada dari jalur file, aliran, atau array byte melalui cfb_reader::from_file(), cfb_reader::from_stream(), atau cfb_reader::from_bytes().
  • Jelajahi pohon direktori: Enumerasi storage dan stream menggunakan storage_ids(), stream_ids(), dan child_ids(), serta menavigasi hierarki bersarang dengan resolve_path().
  • Inspect nodes: Periksa tipe node dengan cfb_node::is_storage() dan cfb_node::is_stream(), baca timestamp melalui creation_time() dan modified_time().
  • Tulis kontainer CFB: Bangun dokumen CFB secara programatis dengan cfb_document dan serialisasikan ke byte atau file melalui cfb_writer::to_bytes() atau cfb_writer::write_file().

Di mana Akses CFB Digunakan

  • Inspeksi file MSG: CFB adalah format kontainer untuk file Outlook .msg — akses langsung CFB memungkinkan inspeksi forensik dan perbaikan.
  • Format biner khusus: Setiap aplikasi warisan yang menggunakan CFB untuk penyimpanan data dapat dibaca atau ditulis tanpa ketergantungan COM.
  • Data recovery: Jelajahi seluruh pohon direktori dan ekstrak byte aliran mentah dari file CFB yang rusak atau tidak standar.

Baca dan Tulis File MSG

  • Baca file MSG: Buka file Outlook MSG dengan msg_reader::from_file() atau msg_reader::from_stream() dan akses aliran properti MAPI yang mendasari serta sub‑storage lampiran.
  • Tulis file MSG: Hasilkan file MSG dari msg_document dengan msg_writer::to_bytes() atau msg_writer::write_file().
  • Inspeksi dokumen MSG: Akses metadata versi melalui msg_document::major_version(), msg_document::minor_version(), dan periksa keketatan dengan msg_document::strict().
  • Convert to CFB: Ekstrak dokumen CFB yang mendasari dari file MSG melalui msg_document::to_cfb_document().

Di mana Pemrosesan MSG Digunakan

  • Alur kerja pengarsipan email: Baca massal file .msg dari direktori arsip dan ekstrak metadata atau lampiran.
  • Alat migrasi: Konversi koleksi MSG ke format standar untuk diimpor ke sistem non-Outlook.
  • Penemuan hukum: Mengurai aliran properti MAPI mentah untuk mengekstrak semua bidang pesan termasuk properti non-standar.

API Pesan MAPI Tingkat Tinggi

  • Buat pesan: Bangun email lengkap dengan mapi_message::create(), kemudian atur subjek, isi, dan HTML isi melalui set_subject(), set_body(), dan set_html_body().
  • Set sender details: Konfigurasikan set_sender_name(), set_sender_email_address(), dan set_sender_address_type() untuk pesan keluar.
  • Kelola lampiran: Muat lampiran dari byte atau aliran dengan mapi_attachment::from_bytes() dan mapi_attachment::from_stream(), serta periksa pesan tersemat melalui is_embedded_message().
  • Simpan dan muat ulang: Serialisasi dengan mapi_message::save() dan muat ulang dengan mapi_message::from_file() atau mapi_message::from_stream().

Di mana API Tingkat Tinggi Digunakan

  • Pembuatan email otomatis: Hasilkan ribuan file MSG yang dipersonalisasi dari catatan data dalam pekerjaan batch.
  • Pembuatan fixture tes: Bangun file MSG yang sudah teruji dengan konten yang dapat diprediksi untuk suite tes integrasi.
  • Ekstraksi lampiran: Muat file MSG, iterasi lampiran, dan simpan masing-masing ke disk.

Konversi EML dan MIME

  • Muat EML ke mapi_message: Mengurai file .eml standar (RFC 5322 / MIME) menjadi objek mapi_message lengkap melalui mapi_message::load_from_eml().
  • Save mapi_message as EML: Serialisasi mapi_message kembali ke format MIME dengan save_to_eml().
  • Fidelitas lintas perjalanan: Subjek, isi, pengirim, penerima, dan lampiran dipertahankan melalui perjalanan bolak‑balik EML ke MSG ke EML.

Di mana Konversi EML Digunakan

  • Format bridging: Terima email sebagai EML dari server mail dan konversi ke MSG untuk penyimpanan yang kompatibel dengan Outlook.
  • Kepatuhan standar: Konversi file MSG proprietari ke MIME standar untuk pengiriman ke transportasi email apa pun.
  • Normalisasi arsip: Normalisasi arsip campuran .eml dan .msg menjadi satu format.

Baca Subjek dari File MSG

Buka file Outlook MSG dari aliran dan cetak subjek — tidak memerlukan Microsoft Outlook.

#include <fstream>
#include <iostream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    std::ifstream input("sample.msg", std::ios::binary);
    auto message = aspose::email::foss::msg::mapi_message::from_stream(input);
    std::cout << message.subject() << '\n';
}

Buat dan Simpan Pesan MSG

Buat email lengkap dengan pengirim, penerima, dan lampiran, lalu tulis ke format MSG dan EML.

#include <fstream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create("Hello", "Body");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    message.add_recipient("bob@example.com", "Bob");
    message.add_attachment("note.txt", std::vector<std::uint8_t>{'a', 'b', 'c'}, "text/plain");

    std::ofstream msg_output("hello.msg", std::ios::binary);
    message.save(msg_output);

    std::ofstream eml_output("hello.eml", std::ios::binary);
    message.save_to_eml(eml_output);
}
  

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia