问题标签 [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.
c# - 为用户设置转发电子邮件地址
此时是否有使用 O365 中的图形 api 更新用户转发电子邮件地址的方法。
如果没有,将来是否有任何计划允许这样做。
c# - Microsoft Graph API - 无法访问单个消息(例外)
我们有一些代码已经成功运行了几个月,而昨天突然之间,它失败了。
基本上,我们有一个进程通过 Graph API C# SDK (v1.12.0) 登录到邮箱,获取未读消息,遍历每条消息,进行一些处理,然后尝试将每条消息标记为“已读”。
以下是相关代码:
异常消息:
Microsoft.Graph.ServiceException:代码:ErrorInternalServerError\r\n消息:发生内部服务器错误。操作失败。,无法打开邮箱。
我们检查了邮箱或帐户的权限,没有任何改变。此外,这似乎不是权限问题,因为我们可以获取令牌、登录并获取消息列表。只是当我们尝试获取特定消息来更新“读取”状态时,它失败了。此外,我们尝试将 SDK 更新到最新版本 v1.19.0,但出现同样的问题。
azure - 如何使用 Microsoft Graph 从 O365 获取“msExchMailboxGuid”
我目前正在通过 Outlook 加载项获取 Exchange 身份令牌。为了验证这一点,我检查了令牌的“msExchUid”部分是否与我的 Active Directory 的“msExchMailboxGuid”字段匹配。
现在我正在尝试对 Azure Active Directory 进行类似的检查。从 Azure 获取信息的推荐方式(微软)是使用 Microsoft Graph。但经过数小时的研究,我发现无法通过 Microsoft Graph 获得这个特定的 MailboxGuid。
我在 Graph-Explorer 中尝试了几个 REST 调用,但既没有“ https://graph.microsoft.com/v1.0/me/mailboxsettings ”也没有“ https://graph.microsoft.com/v1.0/me ”确实返回了我正在寻找的值。
我发现的唯一一件事是 Outlook API,它在调用“ https://outlook.office.com/api/beta/me/mailboxsettings ”时将响应标头中名为“x-mailboxGuid”的值交给我。
但由于 Microsoft 本身建议对所有内容都使用 Microsoft Graph,我想从那里获取邮箱 guid。
所以我的问题是:有没有办法通过 Microsoft Graph 获得这个值?
microsoft-graph-mail - Microsoft graph API --> To see if the message is a reply
I am using the graph API to retrieve the mail from mail folders. For example I got a mail, I will change or edit the subject line and store the conversation id for future use. if I got the reply mail for the same email chain I got different conversation id. How to handle this, I need to find out the reply mail.
reply msg:
I need to find this ts reply message.
microsoft-graph-api - Find the email aliases a message was actually sent to
Is there a way to get the email aliases address to which an email was originally sent from Microsoft Graph?
We have a single email account like main@company.com
along with the multiple other associated email addresses (email aliases). Emails send to any of the aliases go to a to the same inbox as main@company.com
.
If we send an email to alias@company.com
and look at the message using https://graph.microsoft.com/v1.0/me/messages
, it shows mail@company.com
as the email address. We need to detect if it was sent to alias@company.com
.
The information for the allies can be found in the email header and there is a potential workaround in the Outlook API:
This returns an unstructured result which needs to be parsed and it is not very convenient. We are looking if there is a more direct way to get this from Microsoft Graph.
azure - Microsoft Graph SPA 教程不适用于消息
我正在尝试为 SPA 创建一个概念证明,它将允许最终用户(拥有 office365 帐户)登录并查看他们的 office365 电子邮件。但是,在使用本教程进行测试时,我遇到了两个问题:https ://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa
当我使用我的个人 365 帐户登录时,可以登录,但在请求此端点“ https://graph.microsoft.com/v1.0/me/messages ”时收到 401 未经授权的响应。与我请求基本教程“ https://graph.microsoft.com/v1.0/me ”端点时相比,我得到 200 和正确的数据。
当我使用我的工作 365 帐户登录时,登录弹出窗口中的登录被拒绝...“来自身份提供者‘已编辑’的用户帐户‘已编辑’在租户‘默认目录’中不存在,并且无法访问应用程序‘已编辑’ '(已编辑)在该租户中。该帐户需要首先添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。”
我在这里测试了我的个人和工作帐户,它们都工作正常:https ://developer.microsoft.com/en-us/graph/graph-explorer
因此,我担心我没有正确修改本教程或我的应用程序注册,因为我不想手动将个人用户添加到我的租约中(如果这甚至是一件事) - 我假设任何人都拥有有效的 o365 登录最终将能够使用我的水疗中心阅读他们自己的电子邮件。
为了测试消息端点,我对教程代码进行了以下更改:
- 添加了一个 msalConfig.auth.redirectUri 以匹配我的应用注册中的那个
- 将 graphConfig.graphMeEndpoint 从“ https://graph.microsoft.com/v1.0/me ”和“ https://graph.microsoft.com/v1.0/me/messages ”更改
- 将 requestObj.scopes 从 ["user.read"] 更改为 ["user.read", "mail.read"]
我对我的应用注册进行了以下更改:
- 应用注册 > 我的应用 > 身份验证
- 重定向 URI > 为本地和生产添加了 URI
- 隐式授予 > 检查访问令牌和 ID 令牌
- 支持的帐户类型 > 我已经尝试了所有 3 个设置,当前设置为“任何组织目录中的帐户”
- 证书和机密 > 无
- API 权限 > 这最初仅设置为默认“User.Read”。现在包括“Mail.Read”,还为默认目录键入 Delegated 和 Granted
- 公开一个 API > 无
- 所有者 > 默认我的用户设置为类型成员
- 角色和管理员 > 无
- Manifest > 我手动设置了这两个值
- “accessTokenAcceptedVersion”:2
- "signInAudience": "AzureADandPersonalMicrosoftAccount"
我已经搜索了 stackoverflow、MS 教程、博客,而且我正在转圈 - 我不知道还能尝试什么 - 有没有人对我可能需要进行哪些其他代码或应用注册配置设置有任何建议我认为将是一个简单的 POC 启动和运行?
microsoft-graph-api - 从 Microsoft Graph API 流式传输附件到 SOAP WebService
首先我想描述一下我们的架构,它包括:
- Outlook Web 插件(托管在本地 IIS 上)
- 一个 ASP.NET Web API(本地托管)
- 云中的 Microsoft Graph REST API
- 一个 SOAP WebService(不在我的控制之下,在本地)。
该流程可以通过以下步骤来描述:
- 用户单击 Outlook Web 加载项中的按钮
- Ajax 请求是从 Web 插件向 Web API 发出的,其中消息的 ID 作为参数。
- Web API 通过以下方式从 Graph 请求消息
GraphServiceClient
- Web API 将消息中的附件打包到 SOAP 请求中,并将其发送到 SOAP 服务。
Microsoft Graph 中的附件以字节数组的形式返回并存储在内存中。所以我们可能会遇到内存和性能问题。
我的问题是,是否可以将附件从 Microsoft Graph 直接流式传输到 SOAP 服务?
从 MS Graph Rest API 获取附件
附件的字节是否应该通过第二个请求来获取?怎么能流下来?
肥皂服务wsdl中附件部分的定义
...在服务参考中生成为
...并且可以像这样创建:
如何以及在何处通过“我的”Web API 将来自 Rest API 的附件字节流式传输到 SOAP 服务?
我也将感谢一种完全不同的方法来解决这个问题。
c# - 无法使用 Graph 创建草稿,但直接发送邮件可以正常工作
最近微软宣布可以发送带有大于 4MB 附件的电子邮件。
使用较小的附件,我们可以在一个请求中完成所有操作。现在我们必须创建一个草稿,上传附件,然后发送文件。
我有一个在单个请求中发送邮件的工作代码:
上面的代码工作正常,但是当我将最后一行更改为:
或者:
我收到一个ErrorAccessDenied
错误:
访问被拒绝。检查凭据并重试。
为什么在单个请求中发送电子邮件但创建草稿会失败?我需要任何特殊权限吗?