1. Sản Phẩm
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS for C++

Đọc, tạo và xử lý các tệp Outlook MSG và container CFB từ C++ — miễn phí và mã nguồn mở, không phụ thuộc vào Microsoft Outlook.

Thư viện C++ nguồn mở cho tệp MSG và CFB

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_readercfb_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_readermsg_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 container đọc và viết

  • ** Mở tệp CFB:** Tải các container CF B hiện có từ đường dẫn tời, dòng hoặc mảng byte thông qua cfb_reader::from_file(), cfb_reader::from_stream() hay cfb_reader::from_bytes().
  • ** Đi qua cây thư mục:** Đặt danh sách các lưu trữ và dòng thông tin bằng cách sử dụng storage_ids(), stream_ids()child_ids() , và điều hướng theo phân cấp lồng ghép với resolve_path().
  • ** Kiểm tra các nút:** Kiếm loại nút với cfb_node::is_storage()cfb_node::is_stream(), đọc dấu thời gian thông qua creation_time() and modified_time().
  • ** Viết các container CFB:** Tạo tài liệu CF B theo chương trình với 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().

Nơi CFB Access được sử dụng

  • ** Kiểm tra tập tin MSG:** CFB là định dạng container cho Outlook .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.
  • ** Các định dạng nhị phân tùy chỉnh:** Bất kỳ ứng dụng cũ nào sử dụng CFB để lưu trữ dữ liệu đều có thể đọc hoặc ghi mà không cần sự phụ thuộc COM.
  • ** Khôi phục dữ liệu:** Đi qua cây thư mục đầy đủ và trích xuất các byte dòng thô từ tệp CFB bị hư hại hoặc không chuẩn.

MSG File Đọc và Viết

  • ** Đọc tệp MSG:** Mở các tông tin Outlook MS G với 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.
  • ** Viết tệp MSG:** Tạo tảo MS G từ msg_document với msg_writer::to_bytes() hoặc msg_writer::write_file().
  • ** Kiểm tra tài liệu MSG:** Truy cập siêu dữ liệu phiên bản thông qua msg_document::major_version(), msg_document::minor_version() và kiểm tra sự nghiêm ngặt với msg_document::strict().
  • ** Chuyển sang CFB:** Chụp tài liệu CF B cơ bản từ tệp MSG thông qua msg_document::to_cfb_document().

Nơi sử dụng chế biến MSG

  • ** E-mail lưu trữ đường ống:** Đọc hàng loạt .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.
  • ** Công cụ di chuyển:** Chuyển đổi các bộ sưu tập MSG thành định dạng tiêu chuẩn để nhập vào hệ thống không phải Outlook.
  • ** Khám phá pháp lý:** Phân tích luồng thuộc tính MAPI thô để trích xuất tất cả các trường tin nhắn bao gồm cả những thuộc sở hữu không chuẩn.

MAPI thông điệp API cấp cao

  • ** Tạo tin nhắn:** Xây dựng một email hoàn chỉnh với mapi_message::create(), sau đó đặt chủ đề, thân và HTML body thông qua set_subject(), set_body()set_html_body().
  • ** Đặt chi tiết người gửi:** Cấu hình set_sender_name(), set_sender_email_address()set_sender_address_type() cho tin nhắn đi ra.
  • ** Quản lý các tệp đính kèm:** Tải tùng các file đằng sau byte hoặc dòng với mapi_attachment::from_bytes()mapi_attachment::from_stream(), và kiểm tra tin nhắn nhúng thông qua is_embedded_message().
  • Giao lưu và tải lại: Xếp nối với mapi_message::save() và nạp lại bằng mapi_message::from_file() hoặc mapi_message::from_stream().

Nơi sử dụng API cấp cao

  • ** Tạo email tự động:** Tự tạo hàng ngàn tệp MSG được cá nhân hóa từ các bản ghi dữ liệu trong công việc tập hợp.
  • ** Tạo thiết bị thử nghiệm:** Xây dựng các tệp MSG được biết đến với nội dung có thể dự đoán cho bộ kiểm tra tích hợp.
  • Tách xuất tệp đính kèm: Tải một tập tin MSG, lặp lại các tông tự và lưu từng tùng vào đĩa.

EML và chuyển đổi MIME

  • ** Load EML into mapi_message:** Parse một file .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().
  • Save mapi_message as EML: Serialize a mapi_message back to MIME format with save_to_eml().
  • ** Sự trung thực về vòng:** Đối tượng, cơ thể, người gửi, những người nhận và các tệp đính kèm được bảo quản thông qua EML đến MSG tới EM L chuyến đi.

Nơi chuyển đổi EML được sử dụng

  • ** Hình thức nối:** Nhận email dưới dạng EML từ máy chủ thư và chuyển đổi thành MSG cho lưu trữ tương thích Outlook.
  • ** Phù hợp với tiêu chuẩn:** Chuyển đổi các tệp MSG độc quyền thành MIME tiêu chí để giao cho bất kỳ dịch vụ vận chuyển thư nào.
  • ** Đơn giản hóa lưu trữ:** Tiêu chuẩn hóa một tập hợp các tệp .eml.msg thành một định dạng duy nhất.

Đọc chủ đề từ tệp MSG

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 và lưu tin nhắn MSG

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);
}
  

Tài Nguyên Hỗ Trợ và Học Tập

 Tiếng Việt