【发布时间】:2020-01-17 09:15:51
【问题描述】:
我有一个自动化项目 (.NET Framework),目前使用 Microsoft.Exchange.WebServices 轻松完成简单的任务,例如在远程收件箱或文件夹中查找电子邮件、检查附件等。我们从组织电子邮件帐户中获取数据上:outlook.office365.com
最近我开始在.NET Core 重写我的项目,这带来了许多问题,包括我继续使用EWS:
今天,我们将分享我们的计划,即在未来两年内放弃对 EWS 的基本身份验证访问,支持将在 10 月结束。 2020 年 13 月 13 日。
Microsoft Graph 是用于访问 Exchange Online 数据的推荐 API。旨在访问 Exchange Online 数据的新应用程序应使用 Microsoft Graph。
EWS 支持在.NET Core 中似乎也很低,安装后项目中出现各种警告。
我目前与EWS 的所有工作都是在一个类中完成的,其中传递了几个环境变量来设置WebCredentials 等,但正如我阅读了许多微软文章(包括:Get access without a user)我已经意识到没有什么比这更简单了 :) 关于 Graph 的使用,我没有找到直接的代码示例来说明如何以最简单的方式将这种纯粹的后端集成实现到邮箱中。
我想知道是否有人可以给我一个与后端集成相关的简单且适当的身份验证和授权示例?即未经管理员同意的弹出窗口或任何其他不适合此类集成的弹出窗口,这仍然可能吗?
【问题讨论】:
-
这有用吗? Setup Graph Managed API我在从 EWS 转移我的一些工作时写了那个。
-
感谢@IvanFranjic 的链接,我正忙着浏览所有内容。
-
@IvanFranjic 你能帮我理解吗,在你的例子中,我们只是设置
exchangeServiceContext["user@domain.com"]什么时候会提供邮箱的密码?当然,注册和验证您的图形应用程序不应该让您进入您公司 azure 上的任何邮箱的上帝模式?您确定还需要为各个邮箱提供密码吗? -
一旦按照 github wiki 中的描述设置身份验证提供程序,您将获得类似于 Ews 的“应用程序模拟”的内容,并且您不必提供用户名/密码。这将使您能够访问您在 azure 中的应用设置注册中指定的范围(邮箱和授权)。如果 IAuthorizationProvider 不符合您的需要,您仍然可以设置不同类型的授权。
标签: c# microsoft-graph-api microsoft-graph-mail