Microsoft Graph API获取特定发件人邮件内容为空问题求助
排查Microsoft Graph API获取邮件Body为空的方案
- 检查请求的
$select参数:调用mailfolder-list-messages接口时,如果手动指定了$select字段,确认是否包含body或者body/content。要是只选了sender、from这类属性,API不会返回完整的body内容,自然显示为空。 - 强制指定Body内容类型:有些邮件实际是HTML格式,但API默认返回text类型,导致content为空。可以在请求头里加
Prefer: outlook.body-content-type="html",强制获取HTML格式的body内容,对比是否能拿到内容。 - 验证应用权限:确认你的应用申请的是
Mail.Read权限,而不是Mail.ReadBasic。Mail.ReadBasic只能获取邮件的基本元数据,无法读取完整的邮件正文。 - 用Graph Explorer直接测试:找到对应邮件的ID,在Graph Explorer里调用
GET /me/mailFolders/inbox/messages/{message-id},不指定任何过滤参数,看返回的body是否有内容。如果这里能拿到,说明是你代码里的请求参数有问题;如果还是空,可能是Exchange服务器端的问题,需要联系租户管理员排查。 - 排查邮件的特殊状态:检查这些邮件是否被标记为垃圾邮件、归档邮件,或者企业邮箱有加密/过滤规则,导致API无法读取原始内容。可以让客户把邮件移到收件箱,再重新调用API测试。
- 尝试切换API版本:当前用的是v1.0,临时测试下beta版本的接口,看看是否能正常返回body内容。beta版本可能修复了一些v1.0的bug,但注意不要在生产环境用beta。
内容的提问来源于stack exchange,提问作者bmvr
相关产品推荐
相关产品推荐

