Exchange Web Services (EWS)

28 Jan 2025 | 7分钟阅读

引言

Microsoft Exchange Web Services (EWS) 是一个应用程序编程接口 (API),它使应用程序能够访问存储在 Microsoft Exchange 电子邮件邮箱中的日历、联系人和消息。各种应用程序都可以使用 EWS 从 Exchange Online(包括 Office 365 中包含的 Exchange Online)和本地版本的 Exchange(从 Exchange Server 2007 开始)访问其中任何一项。

EWS 的首次发布是在 Exchange Server 2007。Exchange 管理员能够存储、检索、移动和修改电子邮件及电子邮件相关数据,因为有了这个跨平台托管 API。在 Exchange 服务器上,这些数据可能属于单个用户、一组用户,甚至整个 Exchange 服务器组织。

EWS 的其他用途包括:

  1. 将本地 Exchange 数据迁移到外部云主机。
  2. 执行批量邮件检索或传输。
  3. 搜索 Exchange 存储。
  4. 跟踪用户和消息记录。

EWS API 中的许多功能也存在于 Exchange Online 以及 Exchange 2013 及更高版本中。

1. EDiscovery。 这是一个用于联合查询的 Web 服务,它使外部应用程序能够对 Exchange 数据执行电子发现查询。

2. 存档。 通过辅助邮箱来管理电子邮件存储限制,以进行电子邮件存档。

3. 留存策略。 将留存设置应用于单个项目、文件夹或整个邮箱的策略,并将一个或多个留存标记组合在一起。

4. Outlook 的邮件应用管理。 支持管理多个 Microsoft Outlook 邮件应用,包括禁用它们、获取应用清单、获取应用市场 URL、获取客户端访问令牌等。

应用程序如何使用 Microsoft Exchange Web Services 访问邮箱项目

由于 EWS,许多应用程序都可以访问本地和远程的邮箱项目。应用程序所做的只是根据简单对象访问协议 (SOAP) 发出请求,并将可扩展标记语言 (XML) 消息发送到 Exchange 服务器。这意味着,尽管请求消息遵循 SOAP 标准,但其格式为 XML。任何能够通过 HTTP/HTTPS 发布 XML 的应用程序都可以使用 EWS 来访问所需的 Exchange 邮箱项目,因为 SOAP/XML 消息嵌入在 HTTP/HTTPS 消息中。

在应用程序向 Exchange 服务器发送请求后,会发生以下情况:

  1. 在确认客户端提供的凭据后,服务器会自动解析 XML 以获取请求的数据。
  2. 它创建一个基于 XML 的 SOAP 响应。响应表示所请求的强类型对象和属性。
  3. 在收到 HTTP 响应中的 XML 数据后,应用程序将 XML 反序列化。
  4. 应用程序会根据数据重新格式化强类型对象。
Exchange Web Services (EWS)

Exchange Web Services 体系结构

EWS 应用程序与 Microsoft Exchange 的 Web 版本和本地版本都兼容。这些程序是 EWS 体系结构的关键组成部分,可以安装在客户端或 Exchange 本地客户端访问服务器 (CAS) 上。

以下是其他重要的体系结构组件:

SOAP/XML 消息

应用程序必须使用 SOAP/XML 消息来从 Exchange 存储获取信息。此 HTTP/HTTPS 消息包含一个嵌入在 SOAP 封装中的 XML 消息。后者必须符合 CAS 上的 Services.wsdl 文件,并且是 Exchange Online 所必需的。

亚马逊网络服务

这三个文件和 EWS Managed API 程序集(仅适用于 Amazon 本地体系结构)提供了 EWS 服务的文档。每个文件都发挥特定作用。第一个文件定义了客户端-服务器合同的条款;第二个文件定义了发送和接收的 SOAP 消息;第三个文件定义了 SOAP 消息中使用的元素。

这些文件不用于架构验证。但是,由于 EWS 架构的向后和向前兼容性,为先前架构版本设计的应用程序也将与后续架构版本兼容。API 程序集可用于服务器端 EWS 客户端应用程序,并可部署在任何 Exchange Server 角色中。

负载均衡器

负载均衡器组件仅在 Exchange 本地体系结构中可见。SOAP/XML 消息必须分发到 CAS 数组中的每个 CAS。

认证

各种 EWS 程序在 HTTP/HTTPS 负载中使用的身份验证技术各不相同。例如,门户应用程序使用 OAuth(开放授权)身份验证,而客户端应用程序使用 NTLM(新技术局域网管理器)身份验证。服务应用程序可以使用 OAuth 或模拟进行身份验证。

Exchange Web Services (EWS)

客户端访问服务器

与负载均衡器一样,CAS 组件也仅在 Exchange 本地体系结构中可见。它描述了一组经过负载均衡的 CAS。特定的 CAS 处理 Exchange Autodiscover 的查找、将收到的请求代理到邮箱服务器以及验证请求。但是,它们无法渲染数据、存储数据或排队数据,因为它们是轻量级的且无状态的。每项任务都需要负载均衡器和 CAS 服务器。

数据库可用性组 (DAG)

DAG 仅在 Exchange 本地体系结构中存在。它指的是一组可以放置在一个或多个数据中心中的邮箱服务器。邮箱服务器由处理、渲染和存储数据的所有组件组成。它管理其活动邮箱的所有活动。

Exchange Web Services 有哪些应用程序?

由于 EWS 和 Exchange 的体系结构提供了统一的开发范例,从而促进了简单一致的应用程序创建,因此用户可以通过利用 Exchange 中的 EWS 来创建各种 EWS 应用程序。无需修改代码,因为所有应用程序都可以使用相同的代码库从 Exchange 检索数据。邮箱访问和身份验证技术是应用程序之间唯一不同的功能。

所有 EWS 应用程序都需要支持 HTTP/HTTPS、SOAP 1.0、Web Services Description Language (WSDL) 1.0、Secure Sockets Layer/Transport Layer Security (SSL/TSS) 和 XML/XML Schema Definition 等协议,以便能够与 Exchange 服务器进行接口。应用程序还必须支持这些身份验证技术:对于受信任的合作伙伴应用程序,首选 OAuth 2.0 令牌身份验证以及基本的 NTLM 身份验证,而不是 SSL。

以下是在 Exchange 中使用 EWS 创建的三种最常见的应用程序类别:

客户端应用程序

许多独立的程序使用 EWS 来访问和检索 Exchange 中的数据,这些数据可以直接通过客户端访问,也可以通过委托访问来获取所需的数据。由于 Basic、NTLM(早期 Windows)或 Kerberos(Windows 集成)身份验证,用户只能使用自己的登录凭据查看自己邮箱中的数据。Microsoft Teams、Outlook 网页版(以前称为 Outlook Web App)和 Outlook 是一些客户端应用程序的示例。

门户应用程序

为了扩展和个性化现有网页或门户,门户应用程序通常会从 Exchange 中检索数据,例如联系人信息或日历上的空闲/忙碌时间。一个 SharePoint 网页组件,它在用户查看 SharePoint 门户上的页面时提供个性化体验,就是一个门户应用程序的例子。

与客户端应用程序一样,门户应用程序可以委托访问 Exchange 邮箱存储中的信息,或者使用直接客户端访问。这些应用程序还可以通过模拟他人来获取所需信息。OAuth 是使用的身份验证机制,因为它提供了流畅且安全的身份验证数据的方式。

服务应用程序

服务应用程序是嵌入现有程序中的后台作业,它们在系统和 Microsoft Exchange 之间集成或同步数据。例如,一个服务应用程序可能会将 Exchange 中的联系人数据同步到 CRM 应用程序。

大多数服务应用程序没有界面。此外,它们使用 OAuth 或模拟来处理多个(被模拟)帐户的邮箱操作、数据访问和身份验证。

如何开始使用 EWS(5 个步骤)

Microsoft 通过 Exchange Web Services 为 Exchange 用户提供电子邮件 API。您可以使用此 API 访问 Exchange 邮箱中的所有信息和功能。此外,它还允许开发人员:

按照以下五个步骤开始使用 EWS:

  • 设置 Exchange 邮箱帐户。
  • 配置开发环境(Visual Studio 和 .NET framework)。
  • 访问 EWS Managed API(可在 GitHub 上找到)。
  • 在项目中设置引用。
  • 使用 EWS 引用开发您的应用程序。
Exchange Web Services (EWS)

如果您希望在组织中使用这些功能,只需按照这五个步骤开始使用 EWS 即可。

1. 设置 Exchange 邮箱

您必须拥有一个 Exchange 邮箱帐户才能使用 EWS。您还可以找到一个创建帐户的分步指南。如果您的 Exchange 邮箱帐户已配置,则可以跳过此步骤。

2. 设置开发环境

现在必须配置 Exchange Web Service Managed API 开发环境。此外,请确保您有权访问:

  • Visual Studio 的一个版本(从 Visual Studio 2005 开始)
  • .NET framework 不早于 v3.5

3. 访问 EWS Managed API

您可以在 GitHub 上访问 EWS Managed API,因为它被归类为开源项目。请记住,如果您下载了证书,您还需要您的 Exchange Server 上有一个有效的证书。可以验证服务器证书或安装有效的证书。

4. 设置引用

您必须先设置开发环境,然后访问 EWS Managed API,接着打开 Visual Studio 并启动一个项目。通过添加对 EWS Managed API 的引用来完成此操作。接下来,您将配置 URL 重定向验证,以便可以自动找到它。

5. 开发您的第一个 EWS Managed API 应用程序

最后,使用 EWS 引用创建一个 Exchange Service 对象。之后,您就可以开始开发您的第一个应用程序了。


下一主题森林的优缺点