grommunio’s Exchange Web Services with Linux clients

22. April 2024 | Blog

grommunio’s Exchange Web Services with Linux clients

As of last year grommunio has been supporting Exchange Web Services (EWS). These services, first introduced by Microsoft in Exchange 2007, represent another important API via which clients use to communicate with Exchange servers (and Office 365, now MS 365). Especially interesting is that Microsoft openly introduced EWS to encourage third-party developers to contribute their clients.

And they did, from which also grommunio can benefit. Developers, however benefit from the vast amount of debugging and management functions that grommunio brings. That’s where the power of grommunio’s open source development model becomes evident. In addition to the in-house grommunio desktop and the fully supported standard applications on Windows and Mac (Outlook) as well as those on Android and iPhones, there’s applications whose EWS integration is maintained by the community. Because they come in different quality, the example of a somewhat “shaky” candidate shows how help- and powerful grommunio is as a server and what outstanding possibilities it offers for debugging, especially in comparison to Microsoft’s Exchange.

Exchange Web Services: Fully supported since grommunio 2023.11.3

First things first: With the latest version 2023.11.3 of grommunio, EWS has outgrown beta status and is now fully supported. The feature is especially helpful for Apple clients, not only Outlook for Mac but also apps such as Apple Mail and Calender are now supported by grommunio. The EWS services have been active by default since 2023.11.3 – see Release Notes.

Microsoft has specified its EWS API in great detail, and it allows extensive functions, including administration and data management. However, EWS is also particularly attractive because the manufacturer wants and encourages the development of clients by the greater community. EWS should become the interface to other clients, tools and data processing for Exchange data, as well as for tools such as Sharepoint or Skype. If you are want to read more, you can find mor information on blogs such as TechGenix.

Groupware, remote administration and more

For a long time, there have client-side implementations for EWS from the open source world: Mozilla Thunderbird as well as GNOME’s Evolution and KDE Kontact have been offering the connection to EWS, albeit with different quality and with different premises. Whoever dives into these implementations should not expect any miracles. Even if more and more users are relying on free software at the workplace, the Linux desktop still remains an exotic tool, only behind MacOS as a client system.

Worse still: Among Linux desktop users, those with a need for a full-blown groupware client like Outlook are an exception; web tools are usually completely sufficient for those users, and there are implementations such as grommunio Desktop, which always bring the look and feel of the website to all operating systems in a uniform, secure and browser-independent manner. The nice thing about such Electron variants is that they combine all features in one GUI, just as they appear in the web interface.

grommunio Desktop Mail
The grommunio desktop is also available on all Linux operating systems, but does not use EWS.

But even if the target group for a native EWS client or plugin on the Linux desktop is small and so is the developer community, it is still surprising what the Linux community has already achieved here, (without support from e.g. grommunio), and how far you can get with it in everyday life.

EWS test winner: Evolution

Among the real EWS clients for Linux, the Gnome program Evolution performs best, and it does this much better than its competitors. With its rather classic and simple style and user interface, it has by far the best EWS integration, which also worked straight away in the test and automatically recognized all the necessary settings, also in combination with grommunio.

Under openSUSE, the easiest way to get Evolution installed with its EWS extension is a “zypper in evolution-ews”, which also downloads the EWS plugin. As of Evolution 3.27.91 Oauth 2 also works with MS 365, currently Tumbleweed already installs evolution-ews 3.52.

grommunio Exchange Web Services: Installation-Evolution-EWS
One zypper command is sufficient to have Evolution with EWS on a SUSE system.

Especially nice: After the installation, at the first start, Evolution does all the work for the user: A wizard asks for the e-mail address, which is sufficient to autodiscover all other relevant data. If you want to do this later, you can do the same with the menu “Accounts | Add”.

grommunio Exchange Web Services: Evolution
Evolution comes with a clean, complete integration and a smart setup wizard.

Proprietary today, free tomorrow: EWS in Mozilla Thunderbird

Also Mozilla is working on Web Services: “Regarding Microsoft’s further plans, EWS is our best way to ensure support for both Exchange Online and on-premise installations”, the Linux portal Howtogeek quotes developer Sean Burke. The post is still quite new, from February 2024, there is no exact date for Mozilla’s plans yet, but at least there is a commitment. Furthermore, at FOSDEM in Brussels, after Jan Engelhardt’s Talk about grommunio, there have been talks between developers about EWS in Thunderbird. With Mozilla’s tool being available both on Windows, Apple and Linux, that sounds like a great idea.

However, until then, Thunderbird lovers will have to make do with the ExQuilla add-on (some testers preferred the term “struggle”), which has mixed reviews. From the website comes an .xpi file, which the user loads into Thunderbird’s extension management.

No calendar?

After clicking on the dramatic-sounding “Allow Exquilla full access to this computer”, the user still has to configure his Exchange account. Don’t let the the Exquilla documentation now displayed confuse you: It still shows the outdated Thunderbird interface (via the main menu, “Tools | ExQuilla for MicrosoftExchange | Add Microsoft Exchange Account”). In modern Thunderbirds a separate button is provided for the EWS connection after you have installed the Xpi extension, directly on the start page.

As with Evolution, the automatic discovery of grommunio data works without any problems, contacts and mails are transferred to Thunderbird. However, the user will search in vain for a calendar, as synchronization is not part of ExQuilla’s range of functions.

grommunio Exchange Web Services: ExQuilla
For a fee and without calendar: ExQuila for Exchange is a plugin for Mozilla Thunderbird.

Third in the bunch: KDE Kontact with EWS

KDE’s Kontact – or “Kmail” – has also had EWS “on board” for some time, a plugin is not necessary, and EWS is available as a separate server type for the accounts on the common Linux distributions. It’s just a pity that the integration seems to be somewhat orphaned, as the copyright in the “Info dialog” shows, which dates back to 2020. Accordingly, the integration is shaky in some places. As it stands today, EWS works with KDE Kontact, but does not yet seem recommendable; manual debugging is sometimes necessary.

grommunio Exchange Web Services: Kontact
KDE Kontact also comes with a setup wizard, but it fails (as of April 2024) to autodetect the EWS URL and will cause error messages.

The installation itself is very quick: just click on the button to add a new account. Click on “”Setup | Accounts | Add | Custom Mailbox” and select the entry “Microsoft Exchange Server (EWS)”, then you will be presented with a setup wizard similar to that of Evolution.

In theory, the open source groupware clients seem to have pretty similar features: Oauth, NTLMv2, with or without domain, the user can select many useful settings. This mostly works out-of-the-box, only Kontact stumbles (at least with grommunio) on automatically detecting the server URL. Entering it manually is necessary to enjoy EWS with KDE on the Linux desktop – with some drawbacks and error messages. The grommunio developers are still investigating the exact reasons for this, in the test we simply had to enter the URL “https://$SERVERNAME/EWS/Exchange.asmx” manually ($SERVERNAME of course replaced by the responsible mail server) and deactivate NTLMv2 authentication.

Here are the steps required for Kontact with grommunio:

  • Open the setup dialog by clicking on “Settings | Set up Kmail” in the main menu of Kontact. Select the tab “Accounts | Reception” and click on “Add | Custom mailbox”.
  • Assign a name and enter an e-mail address, uncheck “Domain”
  • Enter user name (identical to the e-mail address) and password
  • Deactivate the checkbox “Automatic detection of the server” for grommunio and enter the following value as “EWS URL”: “https://$SERVERNAME/EWS/Exchange.asmx”. Replace $SERVERNAME with your mail server’s FQDN.
  • Click on “Test Connection”. If no error message appears, you can continue with “Execute” and complete the configuration with “OK”. After activating the checkboxes in the calendar and address book, the Exchange data (or the data from grommunio or MS365) will be available to you, as soon as you refresh your Email. As with Evolution, the other tabs in the settings dialog offer extensive options for fine tuning. But caution is advised.

grommunio helps with debugging

Particularly annoying in the test was an error in the EWS plugin, which seemed to put the test system under an unnecessarily high load: the error message “org.kde.pim.ews.client: Failed to read EWS request – expected GetEventsResponseMessage element” appeared in the message journal of the Linux client twice per second, indicating that the KDE plugin still uses “GetEvents”, while the other clients now use the functioning “GetStreamingEvents”. Occasional crashes could also be observed.

But grommunio can also help here: The transparency and admin-friendliness of its open source software makes it possible to take a closer look at the programs. If you activate EWS debugging on the server, the grommunio admin web frontend provides detailed information about client requests – a helpful feature not only when connecting unsupported Linux groupware programs, but also beyond Exchange Web Services.

grommunio Exchange Web Services: grommunio-server-log
The server log shows the incorrect requests from Kontact’s EWS client.

If you want to track down the misbehavior yourself, set the “http_log_level” in grommunio’s configuration file “/etc/gromox/http.cfg” to the value 7 and the parameters ews_request_logging=2 and ews_response_logging=2 in “/etc/gromox/ews.cfg”. grommox then logs all EWS requests and responses completely in the gromox-http log. Attention: These settings should not be kept in productive operation, as they can generate large amounts of log data.

grommunio Exchange Web Services: Debugging
The debugging settings for the EWS traffic on the grommunio server should be commented out during operation.

Conclusion: Evolution yes, Kontact no, Thunderbird soon

The fully integrated EWS services that are now active by default in grommunio are not only interesting for Apple clients. Microsoft has kept its promise to allow any client, and grommunio and the entire open source world also benefit from this. But with grommunio, the first fully functional open source groupware server with Exchange Web Services is now available, numerous customers are already using it and thanks to the transparency and traceability of open source and the many setting options, grommunio can also help in cases where Exchange admins are left to their own devices. With grommunio, you can administrate your Exchange replacement from a Linux command line, in plain-text files, with an abundance of debugging information and – if you want, can, need – adapt the source code to your needs.