Το Aspose.Email FOSS for C++ είναι μια βιβλιοθήκη C++ ανοιχτού κώδικα με άδεια MIT, σχεδιασμένη για εργασία με αρχεία .msg του Microsoft Outlook και δοχεία Compound File Binary (CFB). Συμπεριλάβετε τις κεφαλίδες μέσω CMake και ξεκινήστε αμέσως την ανάγνωση, δημιουργία και επεξεργασία μηνυμάτων ηλεκτρονικού ταχυδρομείου χωρίς την εγκατάσταση του Microsoft Outlook ή οποιουδήποτε ιδιόκτητου χρόνου εκτέλεσης.
Η βιβλιοθήκη παρέχει δύο επίπεδα πρόσβασης. Σε χαμηλό επίπεδο, τα cfb_reader και cfb_writer παρέχουν πλήρη έλεγχο των δυαδικών δοχείων CFB — περιήγηση στις καταχωρήσεις καταλόγου, ανάγνωση και εγγραφή κόμβων αποθήκευσης και δεδομένων ροής, και επιθεώρηση της ακατέργαστης διάταξης τομέων. Τα msg_reader και msg_writer διαχειρίζονται τη μορφή MSG πάνω από το CFB, εκθέτοντας ροές ιδιοτήτων MAPI, πίνακες παραληπτών και υποαποθηκεύσεις συνημμένων. Σε υψηλό επίπεδο, το mapi_message σας επιτρέπει να δημιουργήσετε νέα μηνύματα από το μηδέν, να διαβάζετε θέματα, σώματα, παραλήπτες και συνημμένα, και να μετατρέπετε μεταξύ μορφών MSG και EML.
Η βιβλιοθήκη λειτουργεί σε οποιαδήποτε πλατφόρμα με μεταγλωττιστή C++17 και δεν έχει εξωτερικές εξαρτήσεις, καθιστώντας την κατάλληλη για Windows, Linux, macOS, δοχεία Docker και ενσωματωμένα συστήματα.
cfb_reader::from_file(), cfb_reader::from_stream(), or cfb_reader::from_bytes().storage_ids(), stream_ids(), and child_ids(), and navigate nested hierarchies with resolve_path().cfb_node::is_storage() and cfb_node::is_stream(), read timestamps via creation_time() and modified_time().cfb_document and serialize to bytes or file via cfb_writer::to_bytes() or cfb_writer::write_file()..msg files — direct CFB access enables forensic inspection and repair.msg_reader::from_file() or msg_reader::from_stream() and access the underlying MAPI property streams and attachment sub-storages.msg_document with msg_writer::to_bytes() or msg_writer::write_file().msg_document::major_version(), msg_document::minor_version(), and check strictness with msg_document::strict().msg_document::to_cfb_document()..msg files from archive directories and extract metadata or attachments.mapi_message::create(), then set subject, body, and HTML body via set_subject(), set_body(), and set_html_body().set_sender_name(), set_sender_email_address(), and set_sender_address_type() for the outgoing message.mapi_attachment::from_bytes() and mapi_attachment::from_stream(), and check for embedded messages via is_embedded_message().mapi_message::save() and reload with mapi_message::from_file() or mapi_message::from_stream()..eml file (RFC 5322 / MIME) into a full mapi_message object via mapi_message::load_from_eml().mapi_message back to MIME format with save_to_eml()..eml and .msg files to a single format.Open an Outlook MSG file from a stream and print the subject — no Microsoft Outlook required.
#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';
}
Build a complete email with sender, recipient, and attachment, then write it to both MSG and EML formats.
#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);
}