[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