2017-02-07 29 views
-1

我想访问Outlook电子邮件的原始邮件源。 (就像您右键单击任何电子邮件然后单击“查看源代码”一样)。我有标题部分使用Mapi标题,但不是全身。访问Outlook 2013的电子邮件正文的原始邮件源

有些链接建议使用“https://schemas.microsoft.com/mapi/proptag/0x1000001E”和0X0000001F可以访问正文,但它允许我例外未经授权的访问。

有些链接是说MAPI属性不支持它,因为他们不知道身体有多大。不过这是很旧的帖子。

我有我的VSTO插件(在C#中),我正在使用MailItem对象。

有什么办法可以访问整个邮件的原始来源,或者我只用C++扩展mapi接口来解决这个问题吗?

回答

1

Outlook通常不存储邮件的原始MIME来源。它根本不是它的本地格式。您可以执行的最佳操作是从PR_TRANSPORT_MESSAGE_HEADERS属性(DASL名称http://schemas.microsoft.com/mapi/proptag/0x007D001F)中读取MIME 标头

查看带有OutlookSpy(单击IMessage按钮)的消息以查看可用属性。

+0

感谢您的快速回复。所以你想说的是,消息的MIME源只会在交换中可用?当我们点击电子邮件的查看源时,Outlook如何显示这些信息? – user1677408

+0

我可以读取头部信息(0X007D001E)。我认为扩展的mapi界面应该有助于访问此属性。你会建议什么?我没有得到任何链接访问C#中扩展的mapi接口。 – user1677408

+0

您可以使用MailItem.PropertyAccessor.GetProperty在OOM中读取该属性。再次,这只会给你头。 –

相关问题