访问和管理 Outlook MAPI 属性
Contents
[
Hide
]
MAPI properties 是在 Microsoft Outlook 消息中使用的元数据项,定义诸如发件人、收件人、主题、附件和自定义数据等属性。
Aspose.Email for C++ 允许开发者以编程方式访问、修改和删除这些属性。 MapiMessage 对象、附件和具名属性。
该 MapiProperty 类表示一个 MAPI 属性,包含:
- Name – 属性的字符串标识符。
- Tag – 用于引用属性的数字标识符。
- Data – 表示属性值的字节数组。
读取 MAPI 属性
Aspose.Email 允许您使用属性标签读取 MAPI 属性。
以下代码示例演示如何读取并显示 MAPI 消息文件(.msg)中的主题属性。
- 获取存放 Outlook 消息文件的目录路径。
- 将 Outlook 消息文件("message.msg")加载到一个 MapiMessage 对象。
- 访问消息的 MAPI 属性集合。
- 尝试使用以下方式检索主题属性
PR_SUBJECT (ANSI)标签。 - 如果未找到 ANSI 主题属性,请尝试使用以下方式检索 Unicode 主题属性
PR_SUBJECT_W. - 如果主题属性存在,将其字符串值输出到控制台。
设置 MAPI 属性
可以为消息或收件人设置 MAPI 属性,以定义自定义属性、电子邮件类型或同步状态。
下面的代码示例演示了如何创建 MAPI 消息,设置包括发件人和收件人详细信息、消息标志和修改时间在内的多个自定义 MAPI 属性,然后将消息保存到文件。
注意: ConvertDateTime() 辅助函数以如下方式将 System::DateTime 转换为 MAPI 兼容的 filetime 字节数组,用于日期/时间属性:
int64_t filetime = t.ToFileTime();
System::ArrayPtr<uint8_t> d = System::MakeArray<uint8_t>(8, 0);
d[0] = (uint8_t)(filetime & 0xFF);
d[1] = (uint8_t)((filetime & 0xFF00) >> 8);
d[2] = (uint8_t)((filetime & 0xFF0000) >> 16);
d[3] = (uint8_t)((filetime & 0xFF000000) >> 24);
d[4] = (uint8_t)((filetime & 0xFF00000000) >> 32);
d[5] = (uint8_t)((filetime & 0xFF0000000000) >> 40);
d[6] = (uint8_t)((filetime & 0xFF000000000000) >> 48);
d[7] = (uint8_t)(((uint64_t)filetime & 0xFF00000000000000) >> 56);
读取已命名的 MAPI 属性
具名 MAPI 属性 是用户或应用程序添加的自定义属性。
Aspose.Email 允许从消息和附件中读取这些属性。
从 MSG 文件读取具名 MAPI 属性
下面的代码示例演示了如何加载 MAPI 消息文件,检索其所有具名 MAPI 属性,并遍历它们以查找并显示特定具名属性("TEST" 和 "MYPROP")的值。它展示了通过枚举属性集合并根据名称标识符有条件地处理属性,来访问 MAPI 消息中的自定义或扩展属性的方式。
访问附件中的具名 MAPI 属性
附件中的具名 MAPI 属性也可以类似方式检索:
删除 MAPI 属性
如以下代码示例所示,您可以从消息或附件中删除标准和具名 MAPI 属性。