1. 제품
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS for C++

C++에서 Outlook MSG 파일 및 CFB 컨테이너를 읽고, 생성하고, 처리합니다 — 무료이며 오픈 소스, Microsoft Outlook에 의존하지 않습니다.

MSG 및 CFB 파일용 오픈소스 C++ 라이브러리

Aspose.Email FOSS for C++는 Microsoft Outlook .msg 파일 및 Compound File Binary (CFB) 컨테이너를 다루기 위한 MIT 라이선스 오픈 소스 C++ 라이브러리입니다. CMake를 통해 헤더를 포함하고 Microsoft Outlook이나 어떤 독점 런타임도 설치하지 않고 즉시 이메일 메시지를 읽고, 생성하고, 처리할 수 있습니다.

이 라이브러리는 두 가지 수준의 접근을 제공합니다. 낮은 수준에서는 cfb_readercfb_writer가 CFB 바이너리 컨테이너에 대한 완전한 제어를 제공하며 — 디렉터리 항목을 탐색하고, 스토리지 노드와 스트림 데이터를 읽고 쓰며, 원시 섹터 레이아웃을 검사합니다. msg_readermsg_writer는 CFB 위에 MSG 형식을 처리하여 MAPI 속성 스트림, 수신자 테이블 및 첨부 파일 서브 스토리지를 노출합니다. 높은 수준에서는 mapi_message를 사용하여 처음부터 새 메시지를 만들고, 제목, 본문, 수신자 및 첨부 파일을 읽으며, MSG와 EML 형식 간에 변환할 수 있습니다.

이 라이브러리는 C++17 컴파일러가 있는 모든 플랫폼에서 빌드되며 외부 종속성이 없어 Windows, Linux, macOS, Docker 컨테이너 및 임베디드 시스템에 적합합니다.

추가 기능이 포함된 엔터프라이즈 에디션은 Aspose.Email for C++로 제공됩니다.

CFB 컨테이너 읽기 및 쓰기

  • Open CFB files: 파일 경로, 스트림 또는 바이트 배열에서 기존 CFB 컨테이너를 cfb_reader::from_file(), cfb_reader::from_stream(), 또는 cfb_reader::from_bytes()를 통해 로드합니다.
  • Traverse the directory tree: storage_ids(), stream_ids(), child_ids()를 사용하여 스토리지와 스트림을 열거하고, resolve_path()으로 중첩 계층을 탐색합니다.
  • Inspect nodes: cfb_node::is_storage()cfb_node::is_stream()로 노드 유형을 확인하고, creation_time()modified_time()을 통해 타임스탬프를 읽습니다.
  • Write CFB containers: cfb_document을 사용하여 CFB 문서를 프로그래밍 방식으로 구축하고, cfb_writer::to_bytes() 또는 cfb_writer::write_file()을 통해 바이트 또는 파일로 직렬화합니다.

CFB 접근을 사용하는 곳

  • MSG 파일 검사: CFB는 Outlook .msg 파일을 위한 컨테이너 형식입니다. 직접적인 CF B 접근은 법의학 검사를 가능하게 하고 수리합니다.
  • ** 사용자 정의 바이너리 형식:** 데이터 저장용 CFB를 사용하는 모든 레거시 애플리케이션은 COM 의존 없이 읽을 수 있습니다.
  • 데이터 복구: 전체 디렉토리 트리를 통과하고 손상된 또는 비 표준 CFB 파일에서 원시 스트림 바이트를 추출합니다.

MSG 파일 읽기 및 쓰기

  • Read MSG files: Outlook MSG 파일을 msg_reader::from_file() 또는 msg_reader::from_stream() 로 열고 기본 MAPI 속성 스트림 및 첨부 파일 서브 스토리지를 액세스합니다.
  • Write MSG files: msg_documentmsg_writer::to_bytes() 또는 msg_writer::write_file()를 사용하여 MSG 파일을 생성합니다.
  • MSG document inspection: msg_document::major_version(), msg_document::minor_version()을 통해 버전 메타데이터에 액세스하고 msg_document::strict()로 엄격성을 확인합니다.
  • Convert to CFB: msg_document::to_cfb_document()를 통해 MSG 파일에서 기본 CFB 문서를 추출합니다.

MSG 가 처리 되는 곳 들

  • ** 이메일 아카이브 파이프라인:** .msg 파일들을 대량 읽으며, 메타데이터나 첨부 파일을 추출합니다.
  • 이탈 도구: MSG 컬렉션을 Outlook 이외의 시스템으로 가져오기 위한 표준 형식으로 변환합니다.
  • 법률적 발견: 비 표준적인 특성을 포함한 모든 메시지 필드를 추출하기 위해 MAPI 속성 스트림을 분석합니다.

고수준 MAPI 메시지 API

  • Create messages: 전체 이메일을 mapi_message::create()으로 작성한 다음, set_subject(), set_body(), set_html_body()을 통해 제목, 본문 및 HTML 본문을 설정합니다.
  • Set sender details: set_sender_name(), set_sender_email_address(), set_sender_address_type()을 구성하여 발신 메시지를 설정합니다.
  • Manage attachments: mapi_attachment::from_bytes()mapi_attachment::from_stream()을 사용하여 바이트 또는 스트림에서 첨부 파일을 로드하고, is_embedded_message()를 통해 포함된 메시지를 확인합니다.
  • Save and reload: mapi_message::save()으로 직렬화하고, mapi_message::from_file() 또는 mapi_message::from_stream()로 다시 로드합니다.

고수 API 가 사용 되는 곳

  • 자동화된 이메일 생성: 데이터 기록에서 수천 개의 개인화 된 MSG 파일을 배치 작업으로 생성합니다.
  • ** 테스트 장치 제작:** 통합 시험 부문에 대한 예측 가능한 내용의 잘 알려진 MSG 파일을 구축합니다.
  • ** 첨부 파일 추출:** MSG 파일을 로드하고, 첨가 파일을 반복하여 디스크에 저장합니다.

EML 및 MIME 변환

  • Load EML into mapi_message: 표준 .eml 파일(RFC 5322 / MIME)을 mapi_message::load_from_eml()를 통해 전체 mapi_message 객체로 구문 분석합니다.
  • Save mapi_message as EML: mapi_messagesave_to_eml()를 사용하여 MIME 형식으로 다시 직렬화합니다.
  • Round-trip fidelity: 제목, 본문, 발신자, 수신자 및 첨부 파일이 EML에서 MSG로, 다시 EML로의 라운드 트립 동안 보존됩니다.

EML 변환 을 사용 하는 곳 들

  • ** 포맷 브리지:** 메일 서버에서 EML로 이메일을 수신하고 Outlook 호환 저장용 MSG로 변환합니다.
  • ** 표준 준수:** 모든 우편 운송에 전달하기 위해 독점 MSG 파일을 표준 MIME로 변환합니다.
  • 기록물 정상화: .eml.msg 파일의 혼합된 아카이브를 하나의 형식으로 표준화합니다.

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 메시지를 생성하고 저장합니다.

전송자, 수신자와 첨부 파일을 포함한 완전한 이메일을 작성하고 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);
}
  

지원 및 학습 자료

 한국어