使用 AQS 过滤 Exchange 邮箱中的邮件

高级查询语法 (AQS) 是 Exchange 使用的一种查询语法,作为搜索过滤器的替代方案,用于表达搜索条件。AQS 提供了一种更灵活的方式来执行搜索并为项目的所有常用字段返回搜索结果。AQS 还友好易用,易于理解且快速上手。使用 AQS 适用于通过附件和收件人查找邮件。

创建 AQS 搜索查询

您可以通过以下方式使用 AQS 创建搜索查询:

使用查询构建器

创建搜索查询,使用 ExchangeAdvancedSyntaxQueryBuilder 您需要:

下面的代码示例展示了如何完成上述步骤:

using (var client = EWSClient.GetEWSClient(...))
{
    var advancedBuilder = new ExchangeAdvancedSyntaxQueryBuilder();
    advancedBuilder.From.Equals("Jim Martin");
    advancedBuilder.Subject.Contains("report");
    advancedBuilder.HasAttachment.Equals(true);

    var messages = client.ListMessages(client.MailboxInfo.InboxUri, advancedBuilder.GetQuery());
}

直接 AQS 查询

创建搜索查询,使用 ExchangeAdvancedSyntaxMailQuery 您需要:

下面的代码示例展示了如何完成上述步骤:

using (var client = EWSClient.GetEWSClient(...))
{
    ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
    ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}