问题标签 [microsoft-graph-mail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
59 浏览

microsoft-graph-api - MS Graph Webhook 报告不存在的新电子邮件

我有一个多租户应用程序,它设置了 webhook 来监视到达SentItems文件夹的新电子邮件。有时我会收到一个随机租户的通知,即收到了一封新电子邮件,但我无法通过 Microsoft Graph 或 EWS 在用户邮箱中找到它。

我收到此 ID 已到达的通知:

SentItems文件夹中唯一的消息是:

并且在邮箱中的任何地方都找不到电子邮件。实际上,我认为其中两个 ID 与父文件夹的 ID 不匹配很奇怪,但其余的却匹配。

04/07 更新:

马克请求了完整的通知,但我没有这个 ID。悬停我有一个新的,该项目不存在。该通知是多个通知的一部分,但我找不到的是这个:

更新 05-07:另一个:

0 投票
1 回答
98 浏览

c# - 尝试使用 Select with MailboxSettings.Read 获取我的 MailboxSettings 时访问被拒绝

我正在尝试使用 .net 图形客户端获取当前登录用户(“/me”)的 MailboxSettings。

我有一个可行的解决方案,使用使用“/me/mailboxSettings”的扩展方法,但我发现扩展方法不容易测试,尽管可能,并且更喜欢没有它的解决方案。

我发现使用Me.Request().Select("MailboxSettings")应该也可以,但是我使用相同的身份验证获得了“拒绝访问”的服务异常,该身份验证具有以下权限:“(...)MailboxSettings.Read User.Read User.ReadBasic.All”

使用图形资源管理器进行的测试表明该请求通常可以正常工作,但我不确定这是否是因为它在 azure 上作为我们的应用程序具有更多权限 - 特别是 MailboxSettings.ReadWrite,但我不知道为什么在 Get 上需要这些权限方法。

0 投票
3 回答
467 浏览

microsoft-graph-api - 用户的邮箱设置上的错误访问被拒绝

我正在尝试 https://graph.microsoft.com/v1.0/users/{userId}/mailboxSettings使用身份验证令牌访问端点并作为回报接收403 Error Access Denied响应。

我已授予MailboxSettings.Read, MailboxSettings.ReadWrite. 我可以通过使用jwt.ms. 这是解码令牌的作用:

"scp": "Directory.AccessAsUser.All Files.ReadWrite.All Group.ReadWrite.All Mail.Read Mail.ReadWrite Mail.Send MailboxSettings.Read MailboxSettings.ReadWrite Sites.ReadWrite.All"

我还验证了我为其请求邮箱设置的用户已通过管理员同意获得访问权限。

如果我点击管理员 userId 或https://graph.microsoft.com/v1.0/users/me/mailboxSettings端点的端点,我可以返回邮箱设置。任何帮助将非常感激。

0 投票
1 回答
370 浏览

microsoft-graph-api - 通过 MS GraphAPI 获取新电子邮件发送的状态

我正在玩 msgraph api,我可以发送消息等,但我希望能够检查新创建的消息的状态。发送新消息时返回的并不多,实际上正文是空白的,下面是状态码和标头

是否有 api 调用,您可以在其中获取有关请求状态的信息?因为 request-id 不是发送消息头或推送通知的一部分。

还有一个 API 调用可以让我获取用户被授权发送的所有电子邮件地址,以避免此类响应

0 投票
2 回答
5363 浏览

microsoft-graph-api - 使用 microsoft graph rest api 从邮件中下载附件

我已经使用 microsoft graph rest api 成功获取了收件箱中的邮件列表,但我很难理解有关如何从邮件中下载附件的文档。

在此处输入图像描述

例如:this question stackoverflow answer谈到了我打算实现的目标,但我不明白提到的端点中的 message_id 是什么:https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments

更新

我能够使用以下端点获取附件的详细信息:https ://graph.microsoft.com/v1.0/me/messages/{id}/attachments并得到以下响应。

在此处输入图像描述

我的印象是响应可能包含下载附件的链接,但是响应包含名为 contentBytes 的密钥,我猜它是文件的加密内容。

0 投票
1 回答
2069 浏览

ms-office - microsoft graph api 中的错误访问被拒绝以读取用户消息

当我调用https://graph.microsoft.com/v1.0/me/messagesPostman 时,它返回此错误:

提供应用所需的所有权限。除了 Office 365 Exchange Online 中的“使用具有对所有邮箱的完全访问权限的 Exchange Web 服务”之外,还授予授予权限但仍然无法访问。

中心图像描述在这里 权限图像

0 投票
2 回答
1608 浏览

microsoft-graph-api - 使用 microsoft graph API 获取公用文件夹

我试图获取公用文件夹但没有运气,但在 microsoft graph 文档中找不到任何相关内容,是否可以将公用文件夹添加到同一租户的任何邮箱中?谢谢!

0 投票
1 回答
1446 浏览

azure-active-directory - 使用 Graph API(混合设置)访问 Exchange 2016 本地邮箱

我在 prem 交换服务器上有一个邮箱(处于混合模式)abc@onprem.com,我正在尝试通过图形 api(/messages)访问它。如果我在图形资源管理器中执行此操作,这将非常有效,但是当我通过实现执行此操作时会失败。

Azure 应用注册门户中提供了所需的应用程序权限。实施使用grant_type 作为带有证书的client_credentials,非常适合云用户。

API的响应

IIS 日志

  1. 呼叫来自图形资源管理器

2019-02-28 15:02:31 172.31.10.98GET /api/V2.0/Users('abc@onprem.com')/Messages/$count &CorrelationID=;&cafeReqId=bc8e8aef-de46-4c72-bcf4-b4f567bc45dd ; 443 S-1-5-21-1392771109-4043059535-3934338706-1147 20.190.145.177Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_14_3)+AppleWebKit/537.36+(KHTML,+like+Gecko) +Chrome/71.0.3578.80+Safari/537.36 - 200 0 0 287

  1. 从已实施的应用程序调用

2019-02-28 15:00:05 172.31.10.98GET /api/V2.0/Users('abc@onprem.com')/Messages/$count &CorrelationID=;&cafeReqId=c504b658-b9df-43b5-9dbb-8e83050c3d2f ; 443 - 20.190.128.103- - 401 0 0 102

  1. 这种身份验证失败的原因是什么,可能是因为该令牌是由针对 onprem 进行身份验证的 azure AD 提供的?

更新

添加了更多的日志记录头,发现下面是错误。

2019-03-04 04:05:13 172.31.10.98 GET /api/V2.0/Users('abc@onprem.com')/Messages &CorrelationID=;&cafeReqId=2823c302-3c84-4847-b586-accced4b6dd5; 443 - 20.190.145.177 PostmanRuntime/7.6.0 - 401 0 0 332 Bearer+eyJ0 blah blah.....blah blah.....hSd mail.onprem.com - - - Bearer+client_id="00000002-0000- 0ff1-ce00-000000000000",+token_types="app_asserted_user_v1+service_asserted_app_v1",+authorization_uri="https://login.windows.net/common/oauth2/authorize",+error="invalid_token" 2000001;reason="This+ token+profile+'V1S2SAppOnly'+is+not+applicable+for+the+current+protocol.";error_category="invalid_token"

我们在交换服务器上使用自签名证书,这会导致这个问题吗?如果想知道图形资源管理器中的一切是如何工作的。

0 投票
1 回答
547 浏览

microsoft-graph-api - 无法代表另一个 O365 Outlook 帐户发送电子邮件

出于某种原因,“代表发送”功能对我来说失败了。Graph 始终返回ErrorSendAsDenied(当FromSender字段值不同时)。

帐户被验证具有代表彼此发送的正确配置。在花了三天多的时间后,我无法让它工作。

在身份验证期间请求以下权限:

  • openid
  • email
  • profile
  • offline_access
  • User.Read
  • Mail.Read
  • Mail.ReadWrite
  • Mail.Read.Shared
  • Mail.ReadWrite.Shared
  • Mail.Send
  • Mail.Send.Shared

对于下面的示例,用户 Gregory Test 希望代表 Sem Test 发送消息。有效的授权访问令牌(由 Gregory Test 验证)用于发送电子邮件,但电子邮件传递总是失败。

提交的 JSON 消息示例为:

如果SenderFrom设置为相同的值,则工作正常。Sender邮箱配置为允许代表其他用户发送邮件。

在此处输入图像描述

有任何想法吗?

0 投票
0 回答
240 浏览

powershell - Graph API MailFolder ID 和 PowerShell FolderID 格式之间的转换?

使用 Graph 中的List mailFoldersList childFolders API,我得到一个MailFolder对象,该对象具有id表示文件夹唯一 ID 的属性。这是一个例子:

当使用 PowerShell 获取相同的文件夹Get-MailboxFolderStatistics时,id以不同的格式返回。

有没有办法在同一 ID 的这些不同表示之间进行转换?

我遇到的问题是我使用 Graph 获取文件夹信息(包括 ID),但是我需要对 Graph 当前不支持的信息做一些事情(比如获取文件夹权限)。

我想做的是使用下面的命令,但它只接受返回的格式Get-MailboxFolderStatistics