檔案 SDK 電子郵件訊息檔處理

MIP SDK 支援電子郵件訊息的解密和加密。 SDK 支援.msg檔案,由 Outlook 或 Exchange 產生,而 .rpmsg 檔案則透過稍微不同的方法支援。

此案例的常見使用案例包括:

  • 解密資料外洩防護 (DLP) 檢查的郵件和附件。
  • 直接從企業營運應用程式發佈受保護的訊息
  • 解密、修改及重新保護傳輸中的訊息。
  • 將標籤套用至 DLP 或郵件閘道服務的電子郵件。

MSG 檔案支援語句

MIP SDK 支援 MSG 檔案的保護應用程式和移除。 由於多年來格式的各種編碼類型和變數,因此無法保證 MIP SDK 可以移除所有 MSG 檔案的保護。 下一節說明各種來源 MSG 檔案的支援性。

  • 完全支援從受 MIP SDK 保護的 MSG 檔案移除保護。
  • 完全支援從目前支援的 Outlook 用戶端版本所建立的 MSG 檔案移除保護。
  • 盡最大努力支援 Outlook 用戶端版本所建立的 MSG 檔案移除保護。
  • 受保護標籤無法使用 MSG 檔案的重新保護。 用戶必須先取消保護並明確移除受保護的標籤,再使用另一個標籤再次保護檔案。

MSG 檔案的標籤

MIP SDK 支援在 MSG 檔案上讀取和寫入標籤。 子附件不會繼承卷標,而是繼承保護設定。 如需詳細資訊,請參閱 檔案 SDK 中的標籤和保護作業,以取得.msg檔案

檔案 SDK 中.msg檔案的標籤和保護作業

檔案 SDK 支援.msg檔案的標籤和保護作業,方式與任何其他檔案類型相同,不同之處在於 SDK 需要應用程式來啟用 MSG 功能旗標。

如先前所述,的具現化FileEngine需要設定物件 。 FileEngineSettings FileEngineSettings 可用來傳入自定義設定的參數,以符合特定應用程式需求。 若要讓 MIP SDK 能夠處理 MSG 檔案, CustomSettings 則會使用 對象的 屬性 FileEngineSettings 來設定 旗標 enable_msg_file_type ,以啟用.msg檔案的處理。

如果您已建立FileEngineSettings名為 engine 的物件 設定,您會在 .NET 中設定此屬性,如下所示:

engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));

.msg檔案保護作業虛擬程式碼看起來可能像這樣:

  • 在 中mip::FileEngineSettings設定 enable_msg_file_type 旗標,並將 新增mip::FileEnginemip::FileProfile
  • FileEngine使用 來擷取使用者的標籤清單。
  • 建構 mip::FileHandler ,指向要標記的檔案。
  • 選取標籤並使用 mip::FileHandlerSetLabel 方法來套用標籤。

如需如何列出標籤的資訊,請參閱快速入門:列出標籤

變更預設附件處理行為

根據預設,檔案 SDK 會在使用檢查 API 時,嘗試處理屬於 MSG 檔案的所有附件,或 message.rpmsg 檔案。 它不會遞歸解密附加至根 MSG 之 MSG 檔案的附件。 目前不支援修改默認處理行為。

.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 作為輸入,並傳 回位元組數據流作為輸出。 這些位元組數據流包含訊息和附件的純文本位元組。 應用程式開發人員必須處理這些數據流,並對其執行有用的動作(檢查、遞歸解密等)。

Inspect API 是透過 類別來實作,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 參考

後續步驟