当前位置: 首页 > 知识库问答 >
问题:

使用EWS托管API和C#从邮箱搜索附件

经博延
2023-03-14

我想从一个邮箱中搜索名字中包含某些关键字的所有附件,我正在使用C#EWS托管API(2.2版)来完成这一操作。我可以使用Item.hasAttachment:true属性访问带有附件的项,并且代码按预期工作。但办理时间很长。

我需要知道是否有一个更好更快的方法来访问一个邮箱/文件夹中的附件使用EWS。不是检查每一个邮件项目,有没有一种方法应用过滤器的附件在文件夹级别?

下面是用于按name关键字提取attachemnts的代码段

共有1个答案

萧凡
2023-03-14

我建议您使用QueryString而不是SearchFilter,这意味着您将进行内容索引搜索,而不是文件夹限制,这会快得多。例如

FindItemsResults fiItems = service.FindItems(QueryFolder, "Attachment:blah.pdf", iv);

您可以使用EWSEditor https://github.com/dseph/EWSEditor/releases轻松地测试这一点,如果您右键单击一个文件夹->Search for items,并选择AQS单选按钮,它有一个用于AQS/KQL查询的简单界面

 类似资料:
  • 我目前正在iOS下开发一个EWS客户端应用程序,因此我使用Exchange Web服务与Exchange2010服务器通信(纯XML而不是托管API)。我知道如何访问委托的邮箱和日历,并授予或删除委托对邮箱的访问权限,但在访问之前,我需要先找到这些邮箱。也就是说,我想要找到我的当前用户有权访问的所有邮箱(与所有有权访问当前邮箱的用户相反,当前邮箱是有详细文档记录的)。 这个来自2011年的问题(E

  • 我能够创建一个进程邮箱,并且能够通过https://ExchangeServer/owa/processmailbox@domain.com访问,然后我将提供我的凭据,并且能够登录。 但我无法通过EWS访问。它说SMTP地址没有与之关联的邮箱。 我可以用相同的代码访问我的收件箱。

  • 我正在寻找通过ews api获取所有邮箱列表的方法。 是否有任何方法调用,Powershell中的Get-Mailbox cmd,可以获取EWS API中Exchange Server / Office 365中所有邮箱的列表?

  • 我正在尝试创建一个使用EWS服务侦听Exchange room邮箱中的事件的项目。 我们可以通过将邮箱id传递给方法“getUserSettings”来获取组信息。 感谢任何帮助

  • 如何知道使用Exchange EWS API共享了哪个日历。