首页 > 解决方案 > 使用带有引号的查询字符串进行 EWS 搜索不适用于 Exchange 2016

问题描述

我工作的应用程序使用带有查询字符串的 EWS 来搜索文件夹中的电子邮件。当我指定像主题:“纽约”这样的查询字符串时,它不会返回任何主题为“纽约喷气机队”或“纽约大都会队”的电子邮件。它只会返回完全匹配的电子邮件,例如“New York”。这适用于 office365,但不适用于 Exchange 2016。有谁知道为什么它不能按照以下文章中的说明工作:https ://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-服务/如何执行-aqs-search-by-using-ews-in-exchange

我的功能代码:

    private List<Item> RetrieveItems(Folder folder, string query)
    {
        const int PAGE_SIZE = 500;

        List<Item> items = new List<Item>();
        int offset = 0;
        bool moreResults = false;

        do
        {
            ItemView view = new ItemView(PAGE_SIZE, offset);
            view.PropertySet = new PropertySet(EmailMessageSchema.Subject, EmailMessageSchema.LastModifiedTime, EmailMessageSchema.DateTimeCreated, EmailMessageSchema.Size, EmailMessageSchema.ItemClass, ItemSchema.HasAttachments);

            FindItemsResults<Item> results = null;
            Retry(() =>
            {
                results = folder.FindItems(query, view);
            });

            // Modify this to support "Collect Non-Email Data" (for non-public folder requests.)
            // Right now, we are collecting email AND non-email data unconditionally.
            items.AddRange(results);

            offset += PAGE_SIZE;
            moreResults = results.MoreAvailable;
        }
        while (moreResults);

        return items;
    }

标签: query-stringexchangewebservicesexact-match

解决方案


推荐阅读