如何在 C# 中使用 EWS 下载 >1 MB 的电子邮件附件

How to download >1 MB Email attachment using EWS in C#

我需要使用 Exchange Web 服务从 Exchange 服务器下载电子邮件附件 API 2.1 我试过 FindItemResults。可以下载的最小文件大小。但是,如果文件大小超过 1 MB(我尝试使用 2MB 文件)。它需要更多时间并抛出时间过期异常。我知道为什么这个例外。但我的问题是, 我可以下载大尺寸的附件吗?

EWS Managed API 中的默认超时为 90 秒,因此如果下载未在该时间内完成,您将抛出超时异常。您可以通过在 ExchangeService class 上设置超时 属性 来增加超时,例如

Service.Time = 300000;

300000 = 300000 毫秒或 5 分钟

干杯 格伦

您应该使用 GetItem,而不是 FindItem。使用 FindItem 获取带有附件的邮件的 ID,然后使用 GetItem.

获取整个邮件

Note that the FindItem operation only returns the first 512 bytes (255 Unicode characters) of any property; therefore, message header collections that are longer than 512 bytes will be truncated.

您可以修改这个很好的答案中的代码以满足您的需要:Exchange Web Services API : get mail attachments