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

如何在Microsoft Graph API中获取邮件的conversationTopic?

在Microsoft Graph API中获取邮件的conversationTopic

问题说明

之前用Exchange Service读取Outlook邮件时能拿到conversationTopic属性,但换成Microsoft Graph API后,只能获取conversationId和conversationIndex。这个conversationTopic是原始邮件主题的规范化形式,和邮件头里的Thread-Topic一致,是只读属性,举个例子:

  • 邮件主题:[EXTERNAL] Test-1 → conversationTopic:Test-1
  • 邮件主题:[EXTERNAL] RE: Test-1 → conversationTopic:Test-1

我试过用conversationId搜索相关邮件,请求地址是https://graph.microsoft.com/v1.0/me/messages?$filter= conversationId eq 'yourConversationId',但没找到想要的conversationTopic,想问有没有办法在Graph API里获取这个属性?

可行方案

目前Graph API的message资源确实没有直接返回conversationTopic,但可以通过两种方式实现需求:

  1. 提取对话首条邮件的主题并规范化
    通过conversationId筛选出同对话下的所有邮件,按创建时间升序排序后取第一封(也就是原始邮件),再手动移除主题里的前缀(比如[EXTERNAL]、RE:、FW:这类),就能得到和conversationTopic一致的内容。
    请求示例:

    GET https://graph.microsoft.com/v1.0/me/messages?$filter=conversationId eq '{conversationId}'&$orderby=createdDateTime asc&$top=1
    
  2. 读取邮件头里的Thread-Topic字段
    请求邮件的internetMessageHeaders属性,在返回的邮件头列表里找到Name为Thread-Topic的项,它的Value就是conversationTopic的内容。
    请求示例:

    GET https://graph.microsoft.com/v1.0/me/messages/{messageId}?$select=internetMessageHeaders
    

注:极少数情况下对话邮件可能没有Thread-Topic头,这时就只能用第一种方法兜底。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:35:20