1. 产品
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS for C++

从 C++ 读取、创建和处理 Outlook MSG 文件及 CFB 容器 — 免费且开源,无需 Microsoft Outlook 依赖。

开源C++库用于MSG和CFB文件

为C++是一个MIT授权的开源C++,用于与Microsoft Outlook.msg文件和复合文件二进制 (CFB)容器工作的库.通过CMake添加头条,立即开始阅读,创建和处理电子邮件消息而不需要安装微软Outlook或任何专有运行时间.

库提供两个访问层次.在低级,cfb_readercfb_writer给你完全控制 CFB 二进制容器横向目录条款,阅读和写存储节点和流数据,并检查原始部门布局.msg_readermsg_writer处理MSG格式的CFB上方,暴露MAPI属性流,接收表和附件子存放. 在高级别中, mapi_message让您从头开始创建新的消息,读主题,受体和文件,并在MS G 和EML格态之间转换. 该库建立在任何具有C++17编译器的平台上,并且没有外部依赖性,因此适用于Windows,Linux,macOS,Docker容器和嵌入式系统. 提供了具有额外功能的企业版为Aspose.Email for C++.

读写CFB容器

  • **打开CFB文件:**通过cfb_reader::from_file(), cfb_reader::from_stream()cfb_reader::from_bytes()从一个文件路径,流,或者字节阵列上加载现有CF B容器.
  • ** 穿过目录树:** 使用storage_ids(), stream_ids()child_ids()列出存储和流程,并使用 resolve_path().浏览嵌入式等级.
  • **检查节点:**通过cfb_node::is_storage()cfb_node::is_stream() 检测节點类型,使用creation_time()modified_time()读取时间.
  • **写CFB容器:**使用cfb_document编程CFB文档,并通过 cfb_writer::to_bytes()cfb_writer::write_file() 将其串行到字节或文件中.

使用CFB访问的位置

  • MSG文件检查: CFB是Outlook .msg 文件的容器格式.
  • ** 定制二进制格式:**任何使用CFB为数据存储的传统应用程序都可以在没有COM依赖的情况下读或写.
  • 数据恢复: 浏览完整目录树,并从受损或非标准 CFB文件中提取原始流字节.

读写文件

  • **阅读MSG文件:**使用msg_reader::from_file()msg_reader::from_stream()打开Outlook MSG 文件,并访问底层MAPI属性流和附件子存储.
  • **写MSG文件:**使用msg_writer::to_bytes()msg_writer::write_file().从一个msg_document生成MS G文件.
  • **MSG文件检查:**通过msg_document::major_version(), msg_document::minor_version()访问版本元数据,并使用msg_document::strict() 检验严格性.
  • **转换为CFB:**通过msg_document::to_cfb_document()从MSG文件中提取底层的CF B文档.

在哪里使用MSG加工方法?

  • **电子邮件档案管道:**从档次目录中大量阅读.msg 文件,并提取元数据或附件.
  • **迁移工具:**将MSG集合转换为标准格式,以便导入非Outlook系统.
  • **法律发现:**分析原始MAPI属性流,以提取包括非标准属性的所有消息字段.

高级MAPI消息 API

  • 创建消息: 通过 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().

高级API使用的地方

  • 自动电子邮件生成: 通过批量工作从数据记录中创建数千个个性化MSG文件.
  • **测试装置的创建:**为集成测验套件构建具有可预见内容的已知优质MSG文件.
  • **附件提取:**加载一个MSG文件,重复附录并将每个文件保存到磁盘上.

转换EML和MIME

  • 将EML加载到 mapi_message: 通过 mapi_message::load_from_eml() 将标准的.eml文件 (RFC 5322 / MIME) 分解成一个完整的 mapi_message 对象.
  • 将 mapi_message 保存为 EML:save_to_eml() 将一个mapi_message 重新串行到 MIME 格式.
  • 回程忠实性: 通过EML到MSG到EM L的回路旅行,主体,机身,发送者,接收者和附件都被保存.

在哪里使用EML转换?

  • 格式交叉: 收到电子邮件作为EML从邮箱服务器和转换为MSG对Outlook兼容存储.
  • ** 符合标准:** 将专有MSG文件转换为标准MIME,以便向任何邮件运输.
  • ** 档案规范:** 将.eml.msg文件的混合档次标准化为一个格式.

读取主题从MSG文件中

从流中打开 Outlook MSG 文件,然后印出主题.

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

支持和学习资源

 中文