如何在 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
我需要使用 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