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

如何通过无人值守控制台应用读取Exchange邮箱

问题详情

背景

我已尝试实现该方案多日,这是我首次使用Microsoft Graph。我请网络管理员注册了应用,并参考了相关快速入门代码及两个示例项目。

方案一:PublicClientApplication 遇到的问题

代码示例:

var App = PublicClientApplicationBuilder
  .Create("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
  .WithTenantId("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
  .Build();
  • PublicClientApplication的AcquireTokenByIntegratedWindowsAuth方法看似适合以指定用户身份通过计划任务启动控制台应用,但运行时提示“WS-Trust端点未找到”,请问WS-Trust端点在哪里定义?
  • 示例中的var accounts = await App.GetAccountsAsync()始终返回0个账户,搜索得知需使用全局租户管理员,但公司完全不认可该方案,这如何保证安全?是否需要专门创建一个租户管理员用户?

方案二:ConfidentialClientApplication 遇到的问题

代码示例:

var App = ConfidentialClientApplicationBuilder.Create("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
  .WithClientSecret("aeiou~XXXXXXXXXXX")
  .WithAuthority(new Uri("https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"))
  .Build();
  • ConfidentialClientApplication没有集成Windows身份验证版本,我能成功连接并获取MailFolders和Messages进行处理,但仅当使用App.AcquireTokenForClient(scopes)且API权限允许应用读取所有人邮件时才有效,安全部门对此也不认可。

关于EWS的疑问

我还查看了Exchange Web Services的模拟权限相关资料,部分资料显示EWS已弃用,应改用MS Graph,请问MS Graph中EWS类别的API权限是否仍会保留?

核心需求与求助

需求为:无人值守(通过计划任务启动)、仅具备读取单个邮箱的权限、可保存附件。

能否告知实现该需求的正确配置组合(API权限、客户端应用类型、作用域、权限机构等)?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:25:38