使用EWS API保存msg文件附件

时间:2016-02-19 10:26:06

标签: vb.net exchange-server exchangewebservices ews-managed-api

希望有人可以提供帮助。我正在实现一个功能,您可以选择电子邮件附件并将其保存在数据库中。该功能适用​​于PDF等,但是当涉及到MSG文件时,它会创建一个ItemAttachment而不是Fileattachment,并且不会让我能够获取内容或内容类型。

我发现this关于将邮件保存为.eml的帖子,但理想情况下,因为电子邮件附加了.msg,这应该保存在系统中。我做了一些广泛的搜索,但已经走到了尽头。

我正在使用asp.net,所以在VB.net中的答案将不胜感激。

由于

2 个答案:

答案 0 :(得分:0)

编辑:抱歉,我没有看到你使用VB,因为现在我不会删除我的帖子,因为它仍然可以让你知道如何处理这个,我知道当我挣扎于此时,我的想法过程是错误的,实际的语法不是一个挑战。

我是这个网站的新手,请原谅我,如果我没有正确格式化我的答案。

假设您已经建立了交换连接,创建了一个新的ItemView,并从收件箱中检索了所有电子邮件,我们将从创建电子邮件的辅助列表开始,但我们只会列出包含项目附件的电子邮件

SELECT a.`group`, a.p
FROM `groups` a
INNER JOIN `groups` b
ON a.`group` = b.`group`
WHERE b.p = 'p1'

现在,我们只能循环带有项目附件的电子邮件

List<EmailMessage> emailsWithItemAttachment =
            emails.Where(e => e.HasAttachments && e.Attachments[0] is ItemAttachment).ToList();

我真的希望这可以帮到你,如果我的回答有任何问题,请不要犹豫,编辑和/或联系我!

答案 1 :(得分:0)

查询ItemAttachment时,添加MimeContentPropertyDefinition(抱歉,不记得确切的名称和类)。然后你的ItemAttachment将设置MimeContent属性 - 这是一个文本(MIME),你可以保存为UTF-8编码扩展名为.EML的文件。 MIME是一种标准,因此.EML文件可以由任何邮件客户端应用程序打开。