ResourceNotFound-在混合Exchange安装程序中使用Microsoft Graph API到达本地邮箱

时间:2018-09-07 10:18:44

标签: exchange-server microsoft-graph outlook-restapi

根据these videos,看起来可以像使用Microsoft Graph API的Exchange在线邮箱一样,在混合设置中访问本地Exchange邮箱。

因此,我们有一个混合设置,其中的某些邮箱仅在本地。 OAuth适用于他们,我可以获得访问令牌。使用该令牌,当我点击https://graph.microsoft.com/v1.0/me/时,便获得了用户的基本个人资料。

但是当我尝试通过以下任一端点来读取邮箱内容时:

https://graph.microsoft.com/v1.0/users/(email-address-here)/messages/

https://graph.microsoft.com/v1.0/me/messages/

我收到以下错误响应:

{
    "error": {
        "code": "ResourceNotFound",
        "message": "Resource could not be discovered.",
        "innerError": {
            "request-id": "5d92ef93-e4d5-4610-acd0-a8d2d491d5ab",
            "date": "2018-09-07T09:31:06"
        }
    }
}

我确定我们已经弄乱了混合动力设置的某个步骤,但不知道是哪一步。有人可以指出一些配置,我们应该仔细检查吗?可能是什么原因造成的?

用于生成访问令牌的范围包括Mail.Read,我们的本地Exchange服务器版本是15.1.1531.3,根据this page上的表,它是Exchange Server 2016 CU10。

此外,如果我在浏览器中直接点击以下本地安装URL,它会要求我提供电子邮件和密码:

https://(myonprem.exchange.com)/api/v2.0/me/messages

当我提供它时,它以JSON格式返回邮箱内容,因此这意味着API在本地服务器上也可用。只是Microsoft Graph无法以某种方式找到它。

此Exchange Server安装在Azure上。因此,如果我可以通过家庭互联网连接访问其/api虚拟目录,则Microsoft Graph也应该能够访问它。因此,它也不可能是防火墙问题。

我要指出的一件事是该服务器的出站电子邮件无法正常工作。我们进行混合设置的系统管理员告诉我,出站电子邮件所需的SMTP端口在Azure上被阻止。难道是我遇到问题的原因吗?

1 个答案:

答案 0 :(得分:0)

感谢大家的评论。我们终于让它工作了。以下是我们的系统管理员发现并解决的一些问题:

  1. 我们的Office 365帐户和本地交换服务器的时区不同。我们使它们相同。这有助于活动目录同步。
  2. 自动发现配置不正确。 DNS记录和SSL证书均出现问题。