【问题标题】:Exchange Web Service Search PDF BodyExchange Web 服务搜索 PDF 正文
【发布时间】:2018-03-15 19:51:58
【问题描述】:

负责开发一项小型服务,该服务将通过邮箱文件夹检查某些文档是否实际发送给客户。目标是让用户在 Outlook 中进行手动搜索并将其自动化。

例如,我们将有一张发票,用户将手动进入该邮箱并在“insta search”搜索栏中输入发票编号。当他们这样做时,即使发票编号所在的唯一位置是 PDF 本身,结果也会返回一封电子邮件。下面的例子...

Emai 对象属性:

主题:客户名称 1-1-2017

正文:附上 2017 年 1 月 1 日的费用发票

附件:客户名称 1-1-2017(在实际 PDF 中是此电子邮件中实际发票号所在的唯一位置,这是我正在搜索的内容)。

通过我们必须在 Exchange Server 上安装的称为 iFilter 的东西进行研究,这似乎是可能的?

我的问题是使用 EWS 是否可以利用搜索 PDF 正文的功能?我当前的代码如下,如果发票编号在主题或正文中,则可以使用,但我们很少再这样做了,这将是对流程更改的实质性要求。应该提一下,我真的只是想看看是否返回了特定发票号的结果,所以我不需要 EWS 实际返回的 PDF。

        //initialize the service
        ExchangeService service = new ExchangeService();
        service.UseDefaultCredentials = true;
        service.AutodiscoverUrl("email");
        //get everything ready for the search
        List<SearchFilter> searchFilterCollection = new List<SearchFilter>();
        searchFilterCollection.Add(new SearchFilter.ContainsSubstring(ItemSchema.Subject, "invoiceNumber"));
        searchFilterCollection.Add(new SearchFilter.ContainsSubstring(ItemSchema.Body, "invoiceNumber"));
        searchFilterCollection.Add(new SearchFilter.ContainsSubstring(ItemSchema.Attachments, "invoiceNumber"));
        SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, searchFilterCollection);
        //item view settings
        ItemView view = new ItemView(50);
        Mailbox mailbox = new Mailbox("inboxLocation");
        FolderId folderId = new FolderId(WellKnownFolderName.Inbox, mailbox);
        //find the results
        FindItemsResults<Item> results = service.FindItems(folderId, searchFilter, view);
        foreach (Item item in results.Items)
        {
            Console.WriteLine(item.Subject);
        }

【问题讨论】:

    标签: c# asp.net pdf exchangewebservices


    【解决方案1】:

    这取决于您在 2010 上使用的 Exchange 版本,您必须安装 ifilter 作为选项。在 2013 年及以后默认安装的位置,因此 PDF 内容应包含在 Exchange 内容索引中。

    但是,您的代码不会搜索内容索引,您需要使用 AQS 或 KQL,使用 Finditems 中的 QueryString 参数,请参阅https://msdn.microsoft.com/en-us/library/office/dn579420(v=exchg.150).aspx

    【讨论】:

    • 所以在询问 Exchange 团队后,我们的服务器确实在 2013 年,并且 PDF 索引已打开。当切换到使用 AQS 字符串而不是像这样的搜索过滤器时:“attachment:invoiceNumber”或“body:invoiceNumber”它仍然不返回结果。但是,在 Outlook 搜索框中键入的相同 AQS 确实会返回电子邮件。任何其他想法或我在 AQS 上做错了什么?
    • 在不使用属性限定符的情况下尝试一下,这样您只需搜索搜索短语
    • 所以我试过了,还是不行。但是我很好奇,所以我继续在我自己的收件箱和同事(在我被授予权限之后)上进行了这些相同的测试。搜索确实只使用两个收件箱中的搜索短语。这很奇怪,几乎就像原始邮箱的索引有问题一样。有时,当短语与正文内容中的某些内容匹配时,使用 EWS 结果会返回,有时它不会'即使通过 Outlook 客户端我得到了我期望 100% 的时间的结果。我可以就设置向我们的 Exchange 团队提供任何指导吗?
    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多