Aspose.Email FOSS for C++는 Microsoft Outlook .msg 파일 및 Compound File Binary (CFB) 컨테이너를 다루기 위한 MIT 라이선스 오픈소스 C++ 라이브러리입니다. CMake를 통해 헤더를 포함하고 Microsoft Outlook이나 독점 런타임을 설치하지 않고도 즉시 이메일 메시지를 읽고, 생성하고, 처리할 수 있습니다.
이 라이브러리는 두 가지 수준의 액세스를 제공합니다. 낮은 수준에서는 cfb_reader와 cfb_writer가 CFB 바이너리 컨테이너에 대한 완전한 제어를 제공하며 — 디렉터리 항목을 탐색하고, 스토리지 노드와 스트림 데이터를 읽고 쓰며, 원시 섹터 레이아웃을 검사합니다. msg_reader와 msg_writer는 CFB 위에 있는 MSG 형식을 처리하여 MAPI 속성 스트림, 수신자 테이블 및 첨부 파일 하위 스토리지를 노출합니다. 높은 수준에서는 mapi_message를 사용하여 처음부터 새 메시지를 만들고, 제목, 본문, 수신자 및 첨부 파일을 읽으며, MSG와 EML 형식 간에 변환할 수 있습니다.
이 라이브러리는 C++17 컴파일러가 있는 모든 플랫폼에서 빌드되며 외부 종속성이 없어 Windows, Linux, macOS, Docker 컨테이너 및 임베디드 시스템에 적합합니다.
추가 기능이 포함된 엔터프라이즈 에디션은 Aspose.Email for C++으로 제공됩니다.
cfb_reader::from_file(), cfb_reader::from_stream(), 또는 cfb_reader::from_bytes() 로 기존 CFB 컨테이너를 로드합니다.storage_ids(), stream_ids(), child_ids()를 사용하여 스토리지와 스트림을 열거하고, resolve_path()를 사용하여 중첩된 계층 구조를 탐색합니다.cfb_node::is_storage()와 cfb_node::is_stream()로 노드 유형을 확인하고, creation_time()와 modified_time()을 통해 타임스탬프를 읽습니다.cfb_document을(를) 사용하여 CFB 문서를 프로그래밍 방식으로 빌드하고 cfb_writer::to_bytes() 또는 cfb_writer::write_file()을(를) 통해 바이트 또는 파일로 직렬화합니다..msg 파일의 컨테이너 형식이며 — 직접 CFB 액세스를 통해 포렌식 검사 및 복구가 가능합니다.msg_reader::from_file() 또는 msg_reader::from_stream() 로 열고 기본 MAPI 속성 스트림 및 첨부 서브 스토리지에 액세스합니다.msg_document를 사용하여 msg_writer::to_bytes() 또는 msg_writer::write_file()와 함께 MSG 파일을 생성합니다.msg_document::major_version(), msg_document::minor_version()를 통해 버전 메타데이터에 접근하고, msg_document::strict()로 엄격성을 확인합니다.msg_document::to_cfb_document()을(를) 통해 추출합니다..msg 파일을 대량 읽고 메타데이터 또는 첨부 파일을 추출합니다.mapi_message::create()를 사용하여 전체 이메일을 작성하고, 그런 다음 set_subject(), set_body(), set_html_body()을 통해 제목, 본문 및 HTML 본문을 설정합니다.set_sender_name(), set_sender_email_address(), 및 set_sender_address_type()을(를) 구성합니다.mapi_attachment::from_bytes() 및 mapi_attachment::from_stream()을 사용하여 첨부 파일을 로드하고, is_embedded_message()을 통해 임베디드 메시지를 확인합니다.mapi_message::save()으로 직렬화하고 mapi_message::from_file() 또는 mapi_message::from_stream()로 다시 로드합니다..eml 파일(RFC 5322 / MIME)을 전체 mapi_message 객체로 mapi_message::load_from_eml()를 통해 구문 분석합니다.mapi_message를 save_to_eml()를 사용해 MIME 형식으로 직렬화합니다..eml 및 .msg 파일 아카이브를 단일 형식으로 정규화합니다.스트림에서 Outlook MSG 파일을 열고 제목을 출력합니다 — 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';
}
보낸 사람, 받는 사람 및 첨부 파일이 포함된 전체 이메일을 만든 후, 이를 MSG와 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);
}