从 EWS 导出可在 MS Outlook 中打开的电子邮件消息

发布于 2024-12-06 03:17:11 字数 300 浏览 1 评论 0原文

我正在编写一个使用 EWS 监视 Exchange 邮箱的应用程序。它将传入邮件的附件保存到网络文件夹中。

这些文件随后由 3d 方应用程序使用。

现在有人问我是否可以不仅保存附件,还可以保存包含附件的整个电子邮件,以便可以在 Outlook 中打开它。 (不需要支持其他邮件客户端)。

Exchange 服务器是 Exchange 2010,应用程序是用 C# 编写的 这可以使用 EWS 来完成吗?或者是我使用 Interop.Outlook 创建 .msg 文件的唯一解决方案?

I'm writing an application that monitors an Exchange mailbox using EWS. It saves the attachments of the incoming mails to a network folder.

These files are then used by a 3d party application.

Now I've been asked if it is possible to not only save the attachments but the entire e-mail with attachments still included so it can be opened in Outlook. (no other mailclients need to be supported).

The Exchange server is Exchange 2010 and the application is being written in C#
Can this be done using EWS? Or is my only solution to use Interop.Outlook to create a .msg file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娜些时光,永不杰束 2024-12-13 03:17:11

您使用的是哪个 Outlook 版本? Outlook 2010 可以打开 .EML 文件,这是邮件的“本机”存储格式 (RFC 2822)。在这种情况下,您可以使用 EWS Web 服务(或 EWS 托管 API)下载 MIME 内容。

在任何其他情况下,请查看 Outlook Redemption (http://www.dimastr.com/redemption/)。它可以将项目保存为 .msg 文件,并且可以在 C# 中使用。

Which Outlook version are you using? Outlook 2010 can open .EML files, which is the "native" storage format for mails (RFC 2822). In this case, you can use the EWS Webservices (or EWS Managed API) to download the MIME content.

In any other cases, have a look at Outlook Redemption (http://www.dimastr.com/redemption/). It can save items as .msg file and can be used from C#.

浅浅淡淡 2024-12-13 03:17:11
ExchangeService exchangeService = ...
EmailMessage mailMessage = ...

var propertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, EmailMessageSchema.IsRead);

exchangeService.LoadPropertiesForItems(mailMessage, propertySet);

File.WriteBytes("filename.eml", mailMessage.MimeContent.Content);
ExchangeService exchangeService = ...
EmailMessage mailMessage = ...

var propertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, EmailMessageSchema.IsRead);

exchangeService.LoadPropertiesForItems(mailMessage, propertySet);

File.WriteBytes("filename.eml", mailMessage.MimeContent.Content);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文