跳至内容
Blog

grommunio 的 Exchange Web 服务与 Linux 客户端

· 由 grommunio
grommunio 的 Exchange Web 服务与 Linux 客户端

从去年开始,grommunio 开始支持 Exchange Web 服务(EWS)。这些服务由微软在 Exchange 2007 中首次引入,是客户端与 Exchange 服务器(以及 Office 365,即现在的 MS 365)进行通信的另一个重要 API。尤其有趣的是,微软公开引入 EWS 是为了鼓励第三方开发人员贡献自己的客户端。

他们确实做到了,而 grommunio 也能从中受益。不过,开发人员也能从 grommunio 带来的大量调试和管理功能中获益。这也正是 grommunio 开源开发模式的优势所在。除了内部的 grommunio 桌面和 Windows、Mac(Outlook)以及 Android 和 iPhone 上完全受支持的标准应用程序外,还有一些由社区维护的 EWS 集成应用程序。由于它们的质量参差不齐,一个有点 “不稳定 “的候选例子显示了 grommunio 作为服务器的帮助和功能有多么强大,以及它为调试提供了多么出色的可能性,尤其是与微软的 Exchange 相比。

Exchange 网络服务:自 grommunio 2023.11.3 起全面支持

先说第一件事:在 grommunio 2023.11.3 最新版本中,EWS 已不再是测试版,而是完全支持。该功能尤其对苹果客户端有帮助,现在不仅Outlook for Mac,苹果邮件和日历等应用程序也都支持grommunio。自 2023.11.3 版起,EWS 服务默认为激活状态 - 请参阅发布说明

微软已详细说明了其 EWS API,该 API 允许使用广泛的功能,包括管理和数据管理。不过,EWS 也特别吸引人,因为制造商希望并鼓励广大社区开发客户端。EWS 应成为其他客户端、工具和 Exchange 数据处理的接口,以及 Sharepoint 或 Skype 等工具的接口。如果您想了解更多信息,可以在TechGenix等博客上找到相关信息。

###群件、远程管理等

长期以来,开放源码世界一直有 EWS 的客户端实施方案:Mozilla Thunderbird 以及 GNOME 的 Evolution 和 KDE 的 Kontact 都提供了与 EWS 的连接,尽管质量和前提各不相同。不管是谁,都不应该指望这些实现会带来什么奇迹。即使越来越多的用户在工作场所使用免费软件,Linux 桌面仍然是一种奇特的工具,在客户端系统方面仅次于 MacOS。

更糟糕的是:在 Linux 桌面用户中,那些需要像 Outlook 这样完整的群件客户端的用户是个例外;对于这些用户来说,网络工具通常已经完全足够了,而且还有像 grommunio Desktop这样的实施方案,它们总是以统一、安全和与浏览器无关的方式将网站的外观和感觉带到所有操作系统上。这种电子变体的好处是,它们将所有功能整合在一个图形用户界面中,就像它们在网页界面中一样。

grommunio桌面邮件](/img/posts/24-04-22_grommunio-desktop.jpg)

grommunio 桌面也适用于所有 Linux 操作系统,但不使用 EWS。

不过,尽管在 Linux 桌面上使用本地 EWS 客户端或插件的目标群体很小,开发者社区也很小,但 Linux 社区在这方面已经取得的成就(在没有 grommunio 等公司支持的情况下),以及在日常生活中可以取得的进展,仍然令人吃惊。

EWS 测试优胜者:进化

在真正的 Linux EWS 客户端中,Gnome 程序 Evolution 的表现最为出色,而且比其他竞争者更胜一筹。它的风格和用户界面相当经典简洁,是迄今为止最好的 EWS 集成软件,在测试中也能立即运行,并能自动识别所有必要的设置,还能与 grommunio 结合使用。

在 openSUSE 下,“zypper in evolution-exews “是安装 Evolution 及其 EWS 扩展的最简单方法,同时还能下载 EWS 插件。从 Evolution 3.27.91 版本开始,Oauth 2 也能与 MS 365 一起使用,目前 Tumbleweed 已经安装了 evolution-ews 3.52。

grommunio Exchange Web Services: Installation Evolution EWS

特别漂亮:安装完成后,首次启动时,Evolution 会为用户完成所有工作:向导会询问电子邮件地址,这足以自动发现所有其他相关数据。如果你以后还想这样做,也可以通过菜单 “账户 | 添加 “来完成。

特别好安装完成后,首次启动时,Evolution 会为用户完成所有工作:向导会询问电子邮件地址,这足以自动发现所有其他相关数据。如果以后还想这样做,也可以通过菜单 “Accounts | Add”(账户 | 添加)来完成。

grommunio Exchange Web Services: Evolution

Evolution 具有简洁、完整的集成和智能设置向导。

今天专有,明天免费:Mozilla Thunderbird 中的 EWS

此外,Mozilla 还在开发 Web 服务:Linux 门户网站 Howtogeek援引开发者 Sean Burke 的话说:“关于微软的进一步计划,EWS 是我们确保同时支持 Exchange Online 和内部安装的最佳方式”。这个职位还很新,从 2024 年 2 月开始,Mozilla 的计划还没有确切的日期,但至少有了一个承诺。此外,在布鲁塞尔的 FOSDEM 上,继关于 grommunio 的 Jan Engelhardt 谈话 之后,开发者之间也就 Thunderbird 中的 EWS 进行了讨论。由于 Mozilla 的工具在 Windows、Apple 和 Linux 上都可用,这听起来是个不错的主意。

不过,在此之前,Thunderbird 爱好者只能使用 ExQuilla add-on(一些测试者更喜欢用 “挣扎 “一词),对它的评价褒贬不一。该网站提供了一个 .xpi 文件,用户可以将其加载到 Thunderbird 的扩展管理中。

没有日历?

点击听起来很夸张的 “允许 Exquilla 完全访问此计算机 “后,用户仍需配置其 Exchange 账户。不要被现在显示的 Exquilla 文档所迷惑:它显示的仍然是过时的 Thunderbird 界面(通过主菜单 “Tools | ExQuilla for MicrosoftExchange | Add Microsoft Exchange Account”)。在现代雷鸟中,安装 Xpi 扩展后,启动页面上会直接为 EWS 连接提供一个单独的按钮。

与 Evolution 一样,自动发现 grommunio 数据的工作也没有任何问题,联系人和邮件都会传输到 Thunderbird。不过,由于同步功能不在 ExQuilla 的功能范围内,用户只能徒劳地寻找日历。

grommunio Exchange Web 服务:ExQuilla](/img/posts/24-04-22_Exquilla.jpg)

收费且不带日历:ExQuila for Exchange 是 Mozilla Thunderbird 的插件。

第三名:带有 EWS 的 KDE Kontact

KDE 的 Kontact(或称 “Kmail”)“搭载” EWS 也有一段时间了,不需要插件,而且 EWS 在常见的 Linux 发行版上作为单独的服务器类型提供给账户使用。遗憾的是,正如 “信息对话框 “中的版权信息显示的那样,这种集成似乎有些 “无主”,其日期可追溯到 2020 年。因此,集成在某些地方还不够稳定。目前,EWS 可以与 KDE Kontact 协同工作,但似乎还不值得推荐;有时还需要手动调试。

grommunio Exchange Web Services: Kontact

KDE Kontact 也有一个安装向导,但它无法(截至 2024 年 4 月)自动检测 EWS URL,并会导致错误信息。

安装本身非常快捷:只需点击添加新账户的按钮。点击""Setup | Accounts | Add | Custom Mailbox”,选择 “Microsoft Exchange Server (EWS) “条目,然后就会出现与 Evolution 类似的安装向导。

从理论上讲,开放源代码群件客户端似乎具有非常相似的功能:Oauth、NTLMv2、带域或不带域,用户可以选择许多有用的设置。这些功能大部分都能在开箱即用,只有 Kontact 在自动检测服务器 URL 方面存在缺陷(至少在使用 grommunio 时是如此)。要想在 Linux 桌面上使用 KDE 享受 EWS,必须手动输入 URL,但这样做也有一些弊端和错误信息。grommunio 的开发人员仍在研究其中的确切原因,在测试中,我们只需手动输入 URL “https://$SERVERNAME/EWS/Exchange.asmx”(当然,$SERVERNAME 被替换为负责的邮件服务器)并停用 NTLMv2 身份验证。

以下是使用 grommunio Kontact 所需的步骤:

  • 点击 Kontact 主菜单中的 “设置 | 设置 Kmail”,打开设置对话框。选择选项卡 “Accounts | Reception”(账户 | 接收)并点击 “Add | Custom mailbox”(添加 | 自定义邮箱)。
  • 指定名称并输入电子邮件地址,取消选中 “域”。
  • 输入用户名(与电子邮件地址相同)和密码
  • 停用 grommunio 的 “自动检测服务器 “复选框,并输入以下值作为 “EWS URL”:“https://$SERVERNAME/EWS/Exchange.asmx”。将 $SERVERNAME 替换为邮件服务器的 FQDN。
  • 点击 “测试连接”。如果没有出现错误信息,就可以继续 “执行”,并用 “确定 “完成配置。激活日历和地址簿中的复选框后,只要刷新电子邮件,就可以使用 Exchange 数据(或来自 grommunio 或 MS365 的数据)。与 Evolution 一样,设置对话框中的其他选项卡也提供了大量的微调选项。但建议谨慎操作。

grommunio 有助于调试

在测试中,特别恼人的是 EWS 插件中的一个错误,它似乎让测试系统承受了不必要的高负载:错误信息 “org.kde.pim.ews.client:读取 EWS 请求失败 - 预期的 GetEventsResponseMessage 元素 “每秒两次出现在 Linux 客户端的消息日志中,表明 KDE 插件仍在使用 “GetEvents”,而其他客户端现在使用的是功能正常的 “GetStreamingEvents”。此外,还可以观察到偶尔的崩溃现象。

但 grommunio 也能在这方面提供帮助:其开放源代码软件的透明度和管理员友好性使得对程序进行仔细检查成为可能。如果在服务器上激活 EWS 调试,grommunio 管理员 Web 前端就会提供有关客户端请求的详细信息—这不仅在连接不支持的 Linux 群件程序时有用,在 Exchange Web 服务之外也很有用。

grommunio Exchange Web 服务:grommunio-server-log

服务器日志显示了来自 Kontact EWS 客户端的错误请求。

如果您想自己跟踪错误行为,可将 grommunio 配置文件”/etc/gromox/http.cfg “中的 “http/_log/_level “设为 7,并在”/etc/gromox/exs.cfg “中设置参数 ews_request_logging=2 和 ews_response_logging=2 。注意:这些设置不应在生产运行中保留,因为它们会产生大量日志数据。

grommunio Exchange Web Services: Debugging

在运行过程中,应注释掉 grommunio 服务器上 EWS 流量的调试设置。

结论:Evolution 是,Kontact 不是,Thunderbird 即将推出

在 grommunio 中默认激活的完全集成的 EWS 服务不仅对苹果客户端有意义。微软信守承诺,允许任何客户端使用,而 grommunio 和整个开源世界也将从中受益。不过,现在有了 grommunio,第一款带有 Exchange Web 服务的全功能开源群件服务器已经面世,众多客户已经在使用它,而且由于开源的透明性和可追溯性以及众多的设置选项,grommunio 还可以帮助 Exchange 管理员们解决各自为政的问题。有了 grommunio,你就可以通过 Linux 命令行、纯文本文件和丰富的调试信息来管理你的 Exchange 替代程序,而且—如果你想,可以,需要—还可以根据自己的需要调整源代码。