c# - 使用 Exchange Web 服务从 Exchange 下载附件

标签 c# exchangewebservices

我正在尝试使用以下代码使用 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/

相关文章:

java - 为什么我在调用 Exchange Web 服务 API 的 autoDiscoverUrl 方法时遇到延迟?

c# - 生成数组中所有对的时间复杂度

c# - 如何将字典值作为通用列表获取

c# - 为什么公用文件夹的 TotalCount 属性总是返回 0 个项目?

java - cxf-codegen-plugin 解析 wsdl 时失败(JSXB : undefined attribute 'xml:lang' )

c# - EWS 获得提醒 <= 当前时间的约会

java - 使用 ews - java - api

c# - 从给定线程获取 SynchronizationContext

c# - 如何在 .NET 中以 SOLID 方式实现库级跟踪和诊断?

c# - 这是根据目录名称命名命名空间的好习惯吗