You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C# Graph API按主题、是否有附件过滤邮件

按主题和附件状态过滤Graph API收件箱邮件的C#实现

方法1:使用$filter同时过滤主题和附件状态

Graph SDK提供了Filter()方法,可直接传入OData过滤表达式,同时实现主题匹配、附件状态筛选的逻辑。整合后的代码如下:

// 定义过滤规则:主题包含指定关键词,且带有附件
var filterRule = "contains(subject, '目标关键词') and hasAttachment eq true";

var filteredMessages = await graphClient.Me
    .MailFolders["Inbox"]
    .Messages
    .Request()
    .Select("sender,subject,hasAttachment") // 可选:若需返回附件状态字段可添加
    .Filter(filterRule)
    .Top(5)
    .GetAsync();
  • contains(subject, '目标关键词'):匹配主题包含指定内容的邮件
  • hasAttachment eq true:筛选带有附件的邮件,若需找无附件邮件,改为hasAttachment eq false
  • 多条件可用and/or连接,灵活组合逻辑需求

方法2:使用$search精准搜主题 + $filter筛附件

如果需要更偏向全文搜索的主题匹配,可结合Search()和Filter()方法:

var filteredMessages = await graphClient.Me
    .MailFolders["Inbox"]
    .Messages
    .Request()
    .Select("sender,subject,hasAttachment")
    .Search("subject:'目标关键词'") // 精准搜索主题包含指定词的邮件
    .Filter("hasAttachment eq true") // 同时筛选带附件的邮件
    .Top(5)
    .GetAsync();

注意事项

  • 使用$search时,部分Exchange Online租户需提前开启邮箱搜索功能
  • 若关键词包含单引号,需用两个单引号转义(例如contains(subject, 'Lisa''s project'))

内容的提问来源于stack exchange,提问作者Satya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:20:39