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

使用msgraph-sdk-php获取Outlook邮件的两类技术问题

问题解答

1. 遍历邮件对象获取属性值的正确方式

出现"Cannot use object of type Microsoft\Graph\Model\User as array"错误,是因为你误把User对象当成邮件列表数组遍历,或是获取到的邮件列表是Model集合而非普通数组。

正确操作步骤:

  • 先确保获取到的是邮件列表集合,而非User对象。调用API获取邮件的示例代码:
// 获取当前用户的邮件列表
$messages = $graphClient->me()->messages()->get()->getValue();
  • 遍历$messages时,每个元素是Microsoft\Graph\Model\Message对象,所有属性通过对应的getXXX()方法获取,比如获取bodyPreview:
foreach ($messages as $message) {
    // 获取邮件预览内容
    $bodyPreview = $message->getBodyPreview();
    // 其他属性调用示例
    $subject = $message->getSubject();
    $receivedTime = $message->getReceivedDateTime();
}

Message模型的所有属性都有对应getter方法,可参考SDK内Microsoft\Graph\Model\Message类的定义调用。

2. 获取邮件线程消息的API端点

获取指定邮件线程的所有消息,使用以下端点:

  • 当前登录用户:/me/threads/{threadId}/messages
  • 指定用户:/users/{userId}/threads/{threadId}/messages

对应的SDK调用示例:

$threadId = "目标线程ID";
// 获取当前用户指定线程的所有消息
$threadMessages = $graphClient->me()->threads($threadId)->messages()->get()->getValue();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:09:55