Aspose.Email FOSS cho C++ là một thư viện C++ mã nguồn mở, được cấp phép MIT, dùng để làm việc với các tệp Microsoft Outlook .msg và các container Compound File Binary (CFB). Bao gồm các tiêu đề thông qua CMake và ngay lập tức bắt đầu đọc, tạo và xử lý các tin nhắn email mà không cần cài đặt Microsoft Outlook hoặc bất kỳ môi trường chạy độc quyền nào.
Thư viện cung cấp hai cấp độ truy cập. Ở mức thấp, cfb_reader và cfb_writer cho phép kiểm soát đầy đủ các container nhị phân CFB — duyệt các mục thư mục, đọc và ghi các nút lưu trữ và dữ liệu luồng, và kiểm tra bố cục sector thô. msg_reader và msg_writer xử lý định dạng MSG trên CFB, tiết lộ các luồng thuộc tính MAPI, bảng người nhận và các sub‑storage đính kèm. Ở mức cao, mapi_message cho phép bạn tạo tin nhắn mới từ đầu, đọc tiêu đề, nội dung, người nhận và tệp đính kèm, và chuyển đổi giữa định dạng MSG và EML.
Thư viện được biên dịch trên bất kỳ nền tảng nào có trình biên dịch C++17 và không có phụ thuộc bên ngoài, khiến nó phù hợp cho Windows, Linux, macOS, các container Docker và hệ thống nhúng.
Một phiên bản doanh nghiệp với các tính năng bổ sung được cung cấp dưới dạng Aspose.Email for C++.
cfb_reader::from_file(), cfb_reader::from_stream() hoặc cfb_reader::from_bytes().storage_ids(), stream_ids(), và child_ids(), và điều hướng các phân cấp lồng nhau với resolve_path().cfb_node::is_storage() và cfb_node::is_stream(), đọc dấu thời gian qua creation_time() và modified_time().cfb_document và tuần tự hoá thành byte hoặc tệp qua cfb_writer::to_bytes() hoặc cfb_writer::write_file()..msg — truy cập CFB trực tiếp cho phép kiểm tra pháp y và sửa chữa.msg_reader::from_file() hoặc msg_reader::from_stream() và truy cập các luồng thuộc tính MAPI và các sub‑storage đính kèm.msg_document với msg_writer::to_bytes() hoặc msg_writer::write_file().msg_document::major_version(), msg_document::minor_version(), và kiểm tra mức độ nghiêm ngặt với msg_document::strict().msg_document::to_cfb_document()..msg từ các thư mục lưu trữ và trích xuất siêu dữ liệu hoặc tệp đính kèm.mapi_message::create(), sau đó đặt tiêu đề, nội dung và HTML nội dung qua set_subject(), set_body() và set_html_body().set_sender_name(), set_sender_email_address() và set_sender_address_type() cho tin nhắn gửi đi.mapi_attachment::from_bytes() và mapi_attachment::from_stream(), và kiểm tra các tin nhắn nhúng qua is_embedded_message().mapi_message::save() và tải lại với mapi_message::from_file() hoặc mapi_message::from_stream()..eml tiêu chuẩn (RFC 5322 / MIME) thành một đối tượng mapi_message đầy đủ thông qua mapi_message::load_from_eml().mapi_message trở lại định dạng MIME với save_to_eml()..eml và .msg thành một định dạng duy nhất.Mở tệp Outlook MSG từ một luồng và in tiêu đề — không cần 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';
}
Tạo một email hoàn chỉnh với người gửi, người nhận và tệp đính kèm, sau đó ghi nó ra cả định dạng MSG và 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);
}