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

Aspose.Email FOSS pentru C++

Citiți, creați și procesați fișiere Outlook MSG și containere CFB din C++ — gratuit și open-source, fără dependență de Microsoft Outlook.

Bibliotecă C++ open-source pentru fișiere MSG și CFB

Aspose.Email FOSS pentru C++ este o bibliotecă C++ licențiată MIT, open-source, pentru lucrul cu fișiere .msg Microsoft Outlook și containere Compound File Binary (CFB). Includeți anteturile prin CMake și începeți imediat să citiți, să creați și să procesați mesaje de e‑mail fără a instala Microsoft Outlook sau orice runtime proprietar.

Biblioteca oferă două niveluri de acces. La nivelul scăzut, cfb_reader și cfb_writer oferă control complet asupra containerelor binare CFB — parcurgerea intrărilor de director, citirea și scrierea nodurilor de stocare și a datelor de flux, și inspectarea aranjamentului brut al sectoarelor. msg_reader și msg_writer gestionează formatul MSG deasupra CFB, expunând fluxurile de proprietăți MAPI, tabelele de destinatari și sub‑stocările de atașamente. La nivelul înalt, mapi_message vă permite să creați mesaje noi de la zero, să citiți subiecte, corpuri, destinatari și atașamente și să convertiți între formatul MSG și EML. Biblioteca se compilează pe orice platformă cu un compilator C++17 și nu are dependențe externe, făcând-o potrivită pentru Windows, Linux, macOS, containere Docker și sisteme încorporate. O ediție enterprise cu funcționalităţi suplimentare este oferită ca Aspose.Email for C++.

Citire și scriere container CFB

  • Open CFB files: Încarcă containere CFB existente dintr-o cale de fișier, flux sau tablou de octeți prin cfb_reader::from_file(), cfb_reader::from_stream() sau cfb_reader::from_bytes().
  • Parcurge arborele de directoare: Enumeră stocările și fluxurile utilizând storage_ids(), stream_ids() și child_ids(), și navighează ierarhiile imbricate cu resolve_path().
  • Inspectați nodurile: Verificați tipul nodului cu cfb_node::is_storage() și cfb_node::is_stream(), citiți marcajele de timp prin creation_time() și modified_time().
  • Scrie containere CFB: Construiește documente CFB programatic cu cfb_document și serializează-le în bytes sau fișier prin cfb_writer::to_bytes() sau cfb_writer::write_file().

Unde este utilizat accesul CFB

  • Inspectarea fișierului MSG: CFB este formatul container pentru fișierele Outlook .msg — accesul direct la CFB permite inspectarea și repararea forensică.
  • Formate binare personalizate: Orice aplicație legacy care utilizează CFB pentru stocarea datelor poate fi citită sau scrisă fără o dependență COM.
  • Recuperare de date: Parcurgeți arborele complet de directoare și extrageți octeții fluxului brut din fișiere CFB deteriorate sau non-standard.

Citire și scriere fișier MSG

  • Citește fișierele MSG: Deschide fișierele Outlook MSG cu msg_reader::from_file() sau msg_reader::from_stream() și accesează fluxurile de proprietăți MAPI subiacente și sub‑stocările de atașamente.
  • Scrie fișiere MSG: Produce fișiere MSG dintr-un msg_document cu msg_writer::to_bytes() sau msg_writer::write_file().
  • Inspectarea documentului MSG: Accesați metadatele versiunii prin msg_document::major_version(), msg_document::minor_version() și verificați strictețea cu msg_document::strict().
  • Convert to CFB: Extrage documentul CFB de bază dintr-un fișier MSG prin msg_document::to_cfb_document().

Unde este utilizată procesarea MSG

  • Fluxuri de arhivare a e-mailurilor: Citește în bloc fișiere .msg din directoarele de arhivă și extrage metadatele sau atașamentele.
  • Instrumente de migrare: Convertiți colecțiile MSG în formate standard pentru import în sisteme non-Outlook.
  • Descoperire juridică: Analizați fluxurile brute de proprietăți MAPI pentru a extrage toate câmpurile mesajului, inclusiv proprietățile non-standard.

API Mesaje MAPI de nivel înalt

  • Create messages: Construiți un e‑mail complet cu mapi_message::create(), apoi setaţi subiectul, corpul şi corpul HTML prin set_subject(), set_body() şi set_html_body().
  • Setați detaliile expeditorului: Configurați set_sender_name(), set_sender_email_address() și set_sender_address_type() pentru mesajul de ieșire.
  • Gestionați atașamentele: Încărcați atașamente din octeți sau fluxuri cu mapi_attachment::from_bytes() și mapi_attachment::from_stream(), și verificați mesajele încorporate prin is_embedded_message().
  • Salvează și reîncarcă: Serializați cu mapi_message::save() și reîncărcați cu mapi_message::from_file() sau mapi_message::from_stream().

Unde este utilizat API-ul de nivel înalt

  • Generare automată de e‑mailuri: Generează mii de fișiere MSG personalizate din înregistrările de date în sarcini batch.
  • Crearea fixture-ului de test: Construiți fișiere MSG de încredere cu conținut predictibil pentru suitele de teste de integrare.
  • Extracție de atașamente: Încarcă un fișier MSG, iterează prin atașamente și salvează fiecare pe disc.

Conversie EML și MIME

  • Load EML into mapi_message: Parse a standard .eml file (RFC 5322 / MIME) into a full mapi_message object via mapi_message::load_from_eml().
  • Save mapi_message as EML: Serializați un mapi_message înapoi în format MIME cu save_to_eml().
  • Round-trip fidelity: Subiectul, corpul, expeditorul, destinatarii și atașamentele sunt păstrate în timpul conversiilor EML la MSG la EML.

Unde este utilizată conversia EML

  • Conectarea formatelor: Primește e‑mailuri în format EML de la serverele de mail și convertește-le în MSG pentru stocare compatibilă cu Outlook.
  • Conformitate cu standardele: Convertește fișierele MSG proprietare în MIME standard pentru livrarea către orice transport de e-mail.
  • Normalizare arhivă: Normalizați o arhivă mixtă de fișiere .eml și .msg la un singur format.

Citește subiectul dintr-un fișier MSG

Deschide un fișier Outlook MSG dintr-un flux și afișează subiectul — nu este necesar 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';
}

Creează și salvează un mesaj MSG

Construiți un e‑mail complet cu expeditor, destinatar și atașament, apoi scrie‑l în formatele MSG și 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);
}
  

Support and Learning Resources

 Română