From 7dd61e433f6f1f322b1f3359448bc1fbc0a04682 Mon Sep 17 00:00:00 2001
From: Ronni Baslund
Date: Fri, 12 Jun 2026 11:12:23 +0200
Subject: [PATCH] feat(portal): Exchange account setup hint on the Users page
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Mailbox section now explains adding the mailbox as an Exchange
account on iPhone/Android (built-in apps, not the Outlook app) and
points Windows Outlook users at the CalDAV Synchronizer add-in.
Apple profile header comment updated — EAS now exists via the zpush
gateway, but the .mobileconfig stays the preferred Apple path.
---
apps/portal/pages/admin/users.vue | 3 +++
apps/portal/server/api/apple-mailconfig.get.ts | 6 ++++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/apps/portal/pages/admin/users.vue b/apps/portal/pages/admin/users.vue
index d1607d5..79d1705 100644
--- a/apps/portal/pages/admin/users.vue
+++ b/apps/portal/pages/admin/users.vue
@@ -768,6 +768,9 @@ async function submitCreateMailbox() {
This is the member’s workspace mailbox. To add another address that delivers to the same inbox, add an alias below.
This member signs in with an external address and has no inbox. Create a mailbox on your domain to give them one — and to enable aliases.
+
+ On iPhone and Android the mailbox can also be added as an Exchange account — mail, calendar and contacts in one go. Server {{ mailHost }}, username is the mailbox address. Works in the built-in mail apps (not the Outlook app); on Windows, Outlook syncs the calendar via the free CalDAV Synchronizer add-in.
+
diff --git a/apps/portal/server/api/apple-mailconfig.get.ts b/apps/portal/server/api/apple-mailconfig.get.ts
index d9350ed..771f885 100644
--- a/apps/portal/server/api/apple-mailconfig.get.ts
+++ b/apps/portal/server/api/apple-mailconfig.get.ts
@@ -1,7 +1,9 @@
// Apple configuration profile (.mobileconfig) for one-click Mail setup on
// macOS/iOS — the Apple answer to autodiscovery (Apple Mail ignores RFC 6186
-// SRV records, and "Microsoft Exchange" needs EWS/EAS which Stalwart doesn't
-// speak). The profile carries server settings + the address but NO password:
+// SRV records). On iOS adding the mailbox as an "Exchange" account also
+// works now (the Z-Push EAS gateway, services/zpush), but this profile stays
+// the preferred Apple path: native IMAP+DAV, no protocol translation layer.
+// The profile carries server settings + the address but NO password:
// profiles are plaintext XML, so Apple prompts for the password on install.
//
// Session-gated like every portal API. The mail host comes from runtime