我正在尝试使用以下代码使用 C# 和 Exchange Web 服务从收件箱中的电子邮件连接和下载附件,但我收到“System.ArgumentOutOfRangeException”错误,我看不出原因。我用谷歌搜索了一个答案,但我找不到一个答案,或者我找到的答案是针对非常旧版本的 EWS。
我知道其余代码通常可以正常工作,因为我可以访问与电子邮件相关的其他信息,但不能访问附件。
任何人都可以告诉我我方法的错误吗?
提前致谢
詹姆斯
static void Main(string[] args)
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new NetworkCredential("MYLOGIN", "MYPASSWORD", "MYDOMAIN");
service.Url = new Uri("https://MYMAILSERVER/EWS/Exchange.asmx");
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(1000));
foreach (Item item in findResults.Items)
{
if (item.HasAttachments && item.Attachments[0] is FileAttachment)
{
FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
}
}
}
}
已解决但新问题
我现在通过将“foreach(findResults.Items 中的项目项目)”更改为“foreach(findResults.Items 中的 EmailMessage 项目)”来解决问题,但现在我需要找出如何枚举附件 - 任何有人有想法吗?
最佳答案
检查您的个人资料。如果您在轻模式下运行,附件不会随邮件一起下载。
添加下一行
item.Load() // loads the entire message with attachment
关于c# - 使用 Exchange Web 服务从 Exchange 下载附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991301/