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 .msg của Microsoft Outlook và các container Compound File Binary (CFB). Bao gồm các tiêu đề 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 hay bất kỳ runtime độ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, mở ra 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ó thể 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() hay cfb_reader::from_bytes().storage_ids(), stream_ids() và child_ids() , và điều hướng theo phân cấp lồng ghép với resolve_path().cfb_node::is_storage() và cfb_node::is_stream(), đọc dấu thời gian thông qua creation_time() and modified_time().cfb_document và sắp xếp thành byte hoặc file thông qua cfb_writer::to_bytes() hay cfb_writer::write_file()..msg file truy cập trực tiếp vào CF B có thể 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 vào luồng thuộc tính MAPI cơ bản và lưu trữ phụ đí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 sự nghiêm ngặt với msg_document::strict().msg_document::to_cfb_document()..msg tệp từ thư mục lưu giữ và trích xuất siêu dữ liệu hoặc các tập tin đính kèm.mapi_message::create(), sau đó đặt chủ đề, thân và HTML body thông 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 đi ra.mapi_attachment::from_bytes() và mapi_attachment::from_stream(), và kiểm tra tin nhắn nhúng thông qua is_embedded_message().mapi_message::save() và nạp lại bằng 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 back to MIME format with save_to_eml()..eml và .msg thành một định dạng duy nhất.Mở một tập tin Outlook MSG từ dòng và in chủ đề 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 đó viết nó vào cả hai đị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);
}