[commits] [Wiki] changed: ActiveSync/FeatureGrid

Wiki wikiguest at horde.org
Thu Jun 25 08:00:16 UTC 2026


tdannhauer  Thu, 25 Jun 2026 08:00:16 +0000

Modified page: https://wiki.horde.org/ActiveSync/FeatureGrid
New Revision:  17
Change log:  H6 Update

@@ -3,45 +3,200 @@

-++++The following is a chart showing the out of the box feature set  
of Horde\_ActiveSync used in conjunction with the Horde Groupware  
stack compared to other groupware stacks supporting EAS.
+Feature support for **Horde 6** \(`FRAMEWORK_6_0`\) with the Horde  
groupware stack, compared where useful to other open-source EAS  
implementations.

+For deployment and Autodiscover setup see [ActiveSync](ActiveSync).  
For Horde protocol and version-configuration detail see the  
[horde/activesync  
README](https://github.com/horde/activesync/blob/FRAMEWORK_6_0/README.md).

-| Feature | Horde 4/5 | Z-Push 1/2 | Tine 2.0 | Notes |
+**Comparison accuracy:** Z-Push and Tine columns below were verified  
against their upstream source repositories in **June 2026**  
\([Z-Hub/Z-Push](https://github.com/Z-Hub/Z-Push) `develop` / release  
**2.7.6**;  
[tine-groupware/tine](https://github.com/tine-groupware/tine) `main`  
with [tine20/syncroton](https://github.com/tine20/syncroton)  
`master`\). Cells marked **Partial** or **Varies** mean backend,  
edition, or client-dependent behaviour -- not a simple yes/no.
+
+## Legend
+
+| Symbol | Meaning |
+| --- | --- |
+| **Yes** | Supported in the integrated stack / default setup |
+| **No** | Not supported or not advertised in protocol |
+| **Partial** | Limited, backend-dependent, or incomplete vs Exchange |
+| **Varies** | Depends on backend or deployment \(see Notes\) |
+| **Planned** | On the roadmap, not yet available |
+
+## Protocol version ceiling
+
+What each stack **advertises** to clients in `OPTIONS` / headers  
\(actual feature parity at the highest version may be lower\).
+
+| Implementation | Advertised EAS versions | Notes |
+| --- | --- | --- |
+| **Horde 6** | 2.5 - **16.1** | Configurable global, per-user, and  
per-device ceiling |
+| **Z-Push 2.7.x** | 12.0 - **16.1** | 2.5 removed from default list;  
**backend-dependent** completeness |
+| **Tine / Syncroton** | 2.5 - **14.1** | `MS-ASProtocolVersions` in  
Syncroton `Options.php`; **no 16.x, no `Find`** |
+
+## Stack comparison
+
+| Feature | Horde 6 | Z-Push 2.7.x | Tine / Syncroton | Notes |
  | --- | --- | --- | --- | --- |
-| Efficient memory use via use of temporary streams. | Yes, for  
reading/writing the WBXML data and for reading/writing MIME parts from  
IMAP server. | Yes, for reading/writing the WBXML data. | No |
-| Easily sync multiple collections at once. | Yes | No | Yes |
-| Fully extensible and useable outside of the groupware stack | Yes |  
No | Yes |
-| Support SOFTDELETE for keeping the client's database in sync with  
the client selected date filters. | H5 | No | No |
-| Choice of either SQL or NoSQL state storage. | Yes | No | No | As  
of Horde 5.2, the ActiveSync library supports storing state in  
MongoDB. |
-| Dynamic support for multiple folders per collection. | H5 | No | As  
of Horde 5.2, multiple folders are automatically synchronized when  
possible, or "multiplexed" together otherwise. |
-| EAS 2.5 \(Exchange 2003 SP2\) |
-| Email sync | H5 - Using the efficient [Horde\_Imap\_Client  
library](Project/HordeImapLib). | Yes, using either Zarafa server or  
the "imap" backend which uses the built in php imap functions. | Yes |
-| Email type property | H5 | No | No | This property provides clients  
the ability to display appropriate icons for the type of message.  
E.g., Meeting requests, MDN etc... |
-| Hierarchical folder support | H5 |
-| Calendar sync | H4 | Yes, when syncing against Zarafa server. | Yes |
-| Full meeting request/response | H5 | Yes, when syncing against  
Zarafa server. | No. |
-| Tasks sync | H4 | Yes, when syncing against Zarafa server. | Yes |
-| Contacts sync | H4 | Yes, when syncing against Zarafa server. |
-| GAL search | H4 | Yes, with a few backends. | Yes. |
-| Provisioning/Remote Wipe | H4 - with improvements to security  
policy support in H5. | Yes, with exceptions for some devices and  
limited security policy support. | Yes, with limited security policy  
support. |
-| EAS 12.0 \(Exchange 2007\) |
-| Autodiscover | H5\* | \* Major improvements to Autodiscovery in H5.1. |
-| HTML Email | H5 |
-| Email search for items not synched to client | H5 |
-| Email Flagging | H5 |
-| Full MIME support | H5 |
-| Set out of office message | H5 |
-| EAS 12.1 \(Exchange 2007 SP1\) |
-| Reduced bandwidth features. | H5 |
-| S/MIME on device encryption, decryption, and signing | H5 |
-| EAS 14.0 \(Exchange 2010 SP1\) |
-| Notes Sync | H5.1 |
-| SMS Sync | No |
-| Conversation View | TODO |
-| Reply state sync | H5.1 |
-| Free/busy lookup | H5.1 |
-| Nickname Cache | TODO |
-| EAS 14.1 \(Exchange 2010 SP2\) |
-| Conversation Segments | TODO |
-| GAL/Search Photos | H5.1 |
-| Device Info | H5.1 | Device info can be used during provisioning  
process to allow finer control over device access/management. |
-TODO: Security policies.
+| Integrated groupware backend | **Yes** | **Varies** | **Yes** |  
Z-Push: Kopano \(MAPI\) is full; IMAP/CalDAV/CardDAV are separate  
backends |
+| Usable as protocol library | **Yes** | **Yes** | **Partial** | Tine  
ships Syncroton as part of the product; usable separately in principle |
+| Sync mail + PIM in one session | **Yes** | **Varies** | **Yes** |  
Z-Push **Combined** backend wraps multiple backends |
+| Efficient streams for WBXML / MIME | **Yes** | **Partial** |  
**Partial** | Z-Push: WBXML streams; Horde also streams IMAP MIME  
parts |
+| History-based change detection | **Yes** | **Varies** | **Partial**  
| Z-Push IMAP path still uses diff-style polling; Kopano path differs |
+| SOFTDELETE / date-filter sync | **Yes** | **Varies** | **Partial**  
| Syncroton supports date `FilterType` filters; SOFTDELETE not evident  
in Syncroton |
+| SQL state storage | **Yes** | **Partial** | **Yes** | Z-Push:  
optional `sqlstatemachine` backend; default is file-based |
+| NoSQL \(MongoDB\) state | **Yes** | **No** | **No** | |
+| Multiple folders per collection | **Yes** | **Partial** |  
**Partial** | Horde: discrete or multiplexed; Tine: per-app folders;  
Z-Push: backend-dependent |
+| Per-user EAS version policy | **Yes** | **No** | **No** | Horde:  
permissions \(`horde:activesync:version`\) |
+| Per-device EAS version policy | **Yes** | **No** | **No** | Horde:  
`activesync_device_version` hook |
+| Autodiscover v1 \(POX/XML\) | **Yes** | **Partial** | **Yes** |  
Z-Push: deployment-dependent; Tine: native since ~2019 |
+| Autodiscover v2 \(JSON\) | **Yes** | **No** | **No** | Horde:  
requires web server routing to `rpc.php` |
+| EAS 16.0 / 16.1 features | **Yes** | **Partial** | **No** | See  
sections below; Z-Push has AS16 code paths \(2024+\) but completeness  
varies |
+| Active maintenance \(2026\) | **Yes** | **Yes** | **Yes** | Z-Push  
2.7.6 \(Jul 2025\); Tine weekly releases; Syncroton PHP 8.4/8.5 fixes  
Feb 2026 |
+
+### Z-Push backends \(relevant to «Varies» cells\)
+
+| Backend | Typical use | AS ceiling in code |
+| --- | --- | --- |
+| **Kopano** | Full groupware via MAPI | 16.1 |
+| **Combined** | Wraps multiple backends | Lowest sub-backend, up to 16.1 |
+| **IMAP** | Mail only | 16.1 advertised; diff-style sync |
+| **CalDAV / CardDAV** | Calendar / contacts | 16.1 advertised |
+
+Home: [Z-Hub/Z-Push](https://github.com/Z-Hub/Z-Push). Related fork  
with explicit 16.0/16.1 focus:  
[grommunio-sync](https://github.com/grommunio/grommunio-sync)  
\(separate project; some Z-Push AS16 code derives from it\).
+
+### Tine ActiveSync scope
+
+Tine integrates **Syncroton** for protocol handling. ActiveSync  
frontends exist for **Felamimail** \(mail\), **Calendar**,  
**Addressbook** \(contacts\), and **Tasks** -- **no Notes** ActiveSync  
frontend. Device policies are stored in SQL; policy assignment has  
limited admin UI \(default policy in admin module; custom policies  
often via DB -- see [Tine ActiveSync  
wiki](https://github.com/tine20/tine20/wiki/EN:ActiveSync)\). Current  
product repo:  
[tine-groupware/tine](https://github.com/tine-groupware/tine).
+
+## Horde features by EAS version
+
+The tables below list **Horde 6** support. For Z-Push and Tine at the  
same protocol level, use the ceiling table and stack comparison above  
\(Tine stops at **14.1**; Z-Push **16.x** is partial\).
+
+### EAS 2.5 \(Exchange 2003 SP2\)
+
+| Feature | Horde 6 | Notes |
+| --- | --- | --- |
+| Email sync | **Yes** | Via  
[Horde\_Imap\_Client](Project/HordeImapLib); QRESYNC/MODSEQ  
recommended |
+| Email type property | **Yes** | Icons for meeting requests, MDN, etc. |
+| Hierarchical folder support | **Yes** | |
+| Calendar sync | **Yes** | Kronolith |
+| Meeting request / response | **Yes** | |
+| Tasks sync | **Yes** | Nag |
+| Contacts sync | **Yes** | Turba |
+| GAL search | **Yes** | `Search`, `ResolveRecipients` |
+| Provisioning / remote wipe | **Yes** | Configurable policies via  
permissions |
+| Notes sync | **No** | Requires EAS >= 14.0 |
+
+### EAS 12.0 \(Exchange 2007\)
+
+| Feature | Horde 6 | Notes |
+| --- | --- | --- |
+| Autodiscover v1 \(POX/XML\) | **Yes** | HTTP Basic auth; username  
mapping in Horde config |
+| Autodiscover v2 \(JSON\) | **Yes** | Unauthenticated; requires web  
server routing to `rpc.php` |
+| HTML email | **Yes** | |
+| Search for items not on device | **Yes** | `Search` command |
+| Email flagging \(follow-up\) | **Yes** | Seen and flagged-for-follow-up |
+| Full MIME support | **Yes** | |
+| Out-of-office | **Yes** | `Settings` |
+
+### EAS 12.1 \(Exchange 2007 SP1\)
+
+| Feature | Horde 6 | Notes |
+| --- | --- | --- |
+| Reduced bandwidth \(body preferences\) | **Yes** |  
`AirSyncBase:Body` truncation |
+| S/MIME sign / encrypt / verify on device | **Partial** | When IMP  
S/MIME is configured; client-dependent |
+
+### EAS 14.0 \(Exchange 2010 SP1\)
+
+| Feature | Horde 6 | Z-Push / Tine \(approx.\) | Notes |
+| --- | --- | --- | --- |
+| Notes sync | **Yes** | Z-Push **Varies** / Tine **No** | Horde:  
Mnemo; Tine has no Notes AS frontend |
+| SMS sync | **No** | **No** / **No** | Horde: stubbed so clients do  
not break mail |
+| Conversation view | **No** | **No** / **No** | |
+| Reply state sync | **Yes** | **Partial** / **Partial** | |
+| Free/busy lookup | **Partial** | **No** / **No** | Horde: Kronolith  
Free/Busy URL for Outlook, not via EAS |
+| Nickname cache | **No** | **No** / **No** | |
+
+### EAS 14.1 \(Exchange 2010 SP2\)
+
+| Feature | Horde 6 | Z-Push / Tine \(approx.\) | Notes |
+| --- | --- | --- | --- |
+| Conversation segments | **No** | **No** / **No** | |
+| GAL / search photos | **Yes** | **Partial** / **Partial** | |
+| Device information in provisioning | **Yes** | **Partial** /  
**Partial** | Horde: `activesync_device_modify` hook |
+
+### EAS 16.0 \(Exchange 2016\) -- Horde only among compared stacks
+
+| Feature | Horde 6 | Z-Push 2.7.x | Tine |
+| --- | --- | --- | --- |
+| **Find** command \(mailbox / GAL\) | **Yes** | **Partial** | **No** |
+| Calendar instance model | **Yes** | **Partial** | **No** |
+| `ClientUid` round-trip | **Yes** | **Partial** | **No** |
+| `AirSyncBase:Location` | **Yes** | **Partial** | **No** |
+| Draft folder sync | **Yes** | **Partial** | **No** |
+| SmartForward / SmartReply `Forwardee` | **Yes** | **Partial** | **No** |
+| Recurring meeting requests in mail | **Yes** | **Partial** | **No** |
+
+Z-Push: protocol advertises 16.x; `Find` handler added for 16.1  
\(2023-2024, partly from grommunio-sync\); Kopano backend furthest  
along. Tine/Syncroton does not advertise or implement 16.x.
+
+### EAS 16.1 -- Horde only among compared stacks
+
+| Feature | Horde 6 | Z-Push 2.7.x | Tine |
+| --- | --- | --- | --- |
+| Propose new time \(attendee counter\) | **Yes** | **Partial** | **No** |
+| `DisallowNewTimeProposal` | **Yes** | **No** | **No** |
+| Account-only remote wipe | **Yes** | **No** | **No** |
+| Per-user 16.1 permission | **Yes** | **No** | **No** |
+
+## Mail features \(Horde; typical EAS versions\)
+
+| Feature | Horde 6 | Notes |
+| --- | --- | --- |
+| Send / reply / forward | **Yes** | `SendMail`, `SmartReply`,  
`SmartForward` |
+| Attachments | **Yes** | `GetAttachment`, `ItemOperations:Fetch` |
+| User-defined IMAP flags as categories | **Yes** | |
+| MDN send | **Yes** | |
+| TNEF attachments | **Partial** | Common cases supported |
+| Trash folder behaviour | **Yes** | Device delete -> move or expunge  
per IMP config |
+
+## Calendar and tasks \(Horde\)
+
+| Feature | Horde 6 | Notes |
+| --- | --- | --- |
+| Recurrence and exceptions | **Yes** | Full series + exceptions;  
16.0+ instance model |
+| Attendee proposals stored and synced | **Yes** | 16.1 + iTip mail path |
+| Task recurrence | **Partial** | Basic RRULE; `Regenerate=1` **not**  
supported |
+| `FILTERTYPE_INCOMPLETETASKS` | **Yes** | Incomplete-tasks-only sync |
+| Multiple calendars / task lists / note pads | **Yes** | Discrete or  
multiplexed per device |
+
+## Device management \(Horde\)
+
+| Feature | Horde 6 | Notes |
+| --- | --- | --- |
+| Provisioning policies | **Yes** | PIN, complexity, timeout, etc.  
via permissions tree |
+| Full device remote wipe | **Yes** | |
+| Account-only remote wipe | **Yes** | EAS >= 16.1 |
+| Device block / allow | **Yes** | Hooks and admin UI |
+| Per-device protocol log files | **Yes** | `logging.type = perdevice` |
+| Per-device log toggle in admin GUI | **Planned** | |
+| `ItemOperations:Schema` | **No** | Deferred -- no known client  
requirement |
+
+## Not implemented in Horde \(or deferred\)
+
+| Feature | Status | Notes |
+| --- | --- | --- |
+| SMS sync | **No** | Collections stubbed so clients do not break mail sync |
+| Conversation view / segments | **No** | |
+| Nickname cache | **No** | |
+| HTTP 503 throttling \(`X-MS-Throttle`\) | **No** | Deferred |
+| Task `Regenerate=1` | **No** | Outlook series regeneration; Nag  
uses `completions[]` |
+| EAS usage dashboard | **Planned** | Operator tooling, out of  
protocol library |
+
+## Security policies \(Horde\)
+
+Horde supports a broad set of Exchange-style provisioning policies  
configurable under **Permissions** -> *Horde* -> *ActiveSync* ->  
*Provisioning*. Examples include:
+
+- Require device PIN / password
+- Minimum password length and character classes
+- Maximum failed attempts and password expiration
+- Device encryption requirements
+- Allow or block camera, removable storage, Wi-Fi, Bluetooth, etc.  
\(as exposed in the permission tree\)
+
+Not all clients honor every policy. Use provisioning mode **Allow**  
if some devices do not support provisioning. See [Microsoft EAS  
security policy  
documentation](https://learn.microsoft.com/en-us/previous-versions/office/exchange-server-2010/bb123484\(v=exchg.141\)) and *Provisioning / Remote Wipe* on  
[ActiveSync](ActiveSync).
+
+Z-Push and Tine also support provisioning with a smaller policy set  
exposed through their respective configuration \(Z-Push: deployment  
config; Tine: `tine20_acsync_policy` table\).




More information about the commits mailing list