文件 SDK 电子邮件文件处理

MIP SDK 支持电子邮件的解密和加密。 SDK 支持由 Outlook 或 Exchange 生成的 .msg 文件和 .rpmsg 文件,尽管通过略有不同的方法。

此方案的常见用例包括:

  • 解密邮件和附件,防止数据丢失, (DLP) 检查。
  • 直接从业务线应用程序发布受保护的消息
  • 解密、修改和重新保护传输中的消息。
  • 将标签应用于来自 DLP 或邮件网关服务的电子邮件。

MSG 文件支持声明

MIP SDK 支持 MSG 文件的保护应用程序和删除。 考虑到多年来各种编码类型和变量的格式,无法保证 MIP SDK 可以删除所有 MSG 文件 的保护。 以下部分介绍各种源中 MSG 文件的可支持性。

  • 完全支持从受 MIP SDK 保护的 MSG 文件中删除保护。
  • 完全支持从当前支持的客户端版本创建的 MSG Outlook删除保护。
  • 支持不提供支持的客户端版本创建的 MSG 文件Outlook尽力而为。

MSG 文件的标签

MIP SDK 1.10开始,支持在 MSG 文件上读取和写入标签。 子附件 不会继承 标签,但会继承保护设置。 有关 更多详细信息,请查看适用于 .msg 文件 的文件 SDK 中的标签和保护操作。

.msg 文件的文件 SDK 中的标记和保护操作

文件 SDK 支持对 .msg 文件执行与任何其他文件类型相同的标记和保护操作,但 SDK 需要应用程序才能启用 MSG 功能标志。

如前所述,实例化 mip::FileEngine 需要设置对象 mip::FileEngineSettingsmip::FileEngineSettings 可用于传递自定义设置的参数以满足特定应用程序需求。 若要使 MIP SDK 能够处理 MSG 文件,使用 对象的 属性设置 标志以 CustomSettingsFileEngineSettings 启用 enable_msg_file_type .msg 文件处理。

.msg 文件保护操作伪代码可能如下所示:

  • enable_msg_file_type 中设置 mip::FileEngineSettings 标志,将 mip::FileEngine 添加到 mip::FileProfile
  • 使用 FileEngine 获取用户的标签列表。
  • mip::FileHandler指向要标记的文件的构造。
  • 选择一个标签, mip::FileHandlerSetLabel 然后使用 的 方法应用标签。

请参阅 快速入门:列出标签 ,了解如何列出标签。

.rpmsg 文件的文件 SDK 操作

MIP SDK 公开一个检查函数,该函数可以解密嵌入 的 message.rpmsg 文件,并呈现一组字节流作为输出。 由 SDK 使用者来提取 message.rpmsg 文件,并传递给检查 API。 此文件名的变体适用于Office加密方案,API 也接受message_v2、v3 或 v4 文件。

重要

检查 API 不提供 将导致可用文件的输出,也不允许你重新保护输入文件。 它会输出应用程序可以进一步处理的字节流。 MIP SDK 不支持从 message.rpmsg 文件重新创建 MSG 文件。

通常,DLP 服务的邮件网关 (数据丢失防护) 在电子邮件传输过程中处理符合 MIME 要求的邮件。 邮件受保护时,邮件的加密内容存储在附件 message.rpmsg 中。 此附件包含加密的电子邮件正文以及原始邮件中包含的任何附件。 然后 ,rpmsg 文件将附加到纯文本包装器电子邮件并发送到邮件服务。 一旦该消息Exchange或Exchange Online边界,它将采用 MIME 兼容格式,以便可以发送到其目标。

在大多数情况下,DLP 服务需要从消息获取附件和纯文本字节,以根据 DLP 策略进行检查和评估。 检查 API 采用 message.rpmsg 作为输入,并返回 字节流作为输出。 这些字节流包含消息和附件的纯文本字节。 应用程序开发人员负责处理这些流,并使用它们执行一些有用的 (检查、递归解密等) 。

InspectAPI 通过 类实现,该类 mip::FileInspector 公开用于检查支持的文件类型的操作。 mip::MsgInspector 扩展 mip::FileInspector ,公开特定于 rpmsg 文件格式的解密操作。 MIP SDK 不支持 message.rpmsg 文件的任何发布方案。 此外 FileHandler::RemoveProtection() ,API 不支持 message.rpmsg 文件。 Message.rpmsg 文件只能解密以进行检查, 并且不会输出有效的可用文件。 如果应用程序需要文件输出,则必须传递 MSG 文件并从该对象中删除保护。

mip::MsgInspector 类公开以下成员:

public const std::vector<uint8_t>& GetBody()
public BodyType GetBodyType() const
public BodyType GetBodyType() const
public InspectorType GetInspectorType() const
public std::shared_ptr<Stream> GetFileStream() const

有关详细信息,请参阅 API 参考

下一步