From 4576adfc9cc4104feb18d2eada6b0ab0dd4c3219 Mon Sep 17 00:00:00 2001 From: Maurus Decimus <11444311+mdecimus@users.noreply.github.com> Date: Mon, 4 May 2026 18:29:10 +0200 Subject: [PATCH] Fix autoconfig: Return `%EMAILADDRESS%` when no email address is provided --- CHANGELOG.md | 1 + .../src/network/autoconfig/legacy_autoconfig.rs | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 916f165e..35849f6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ If you are upgrading from v0.16.x, replace the binary (or run `docker pull`). If - JMAP references in nested objects not resolved. - Import tool fails to restore registry entries. - FDB: Allow multiple FoundationDB instances in the same process. +- Autoconfig: Return `%EMAILADDRESS%` when no email address is provided. ## [0.16.3] - 2026-04-30 diff --git a/crates/common/src/network/autoconfig/legacy_autoconfig.rs b/crates/common/src/network/autoconfig/legacy_autoconfig.rs index e7e2d7e0..28c781e4 100644 --- a/crates/common/src/network/autoconfig/legacy_autoconfig.rs +++ b/crates/common/src/network/autoconfig/legacy_autoconfig.rs @@ -16,16 +16,17 @@ impl Server { ) -> trc::Result>> { // Obtain parameters let params = UrlParams::new(uri); - let emailaddress = params + let emailaddress_param = params .get("emailaddress") .unwrap_or_default() .to_lowercase(); - let Some((_, domain)) = emailaddress.rsplit_once('@') else { - return Err(trc::ResourceEvent::BadParameters - .into_err() - .details("Missing domain in email address")); - }; let default_host = &self.core.network.server_name; + let (emailaddress, domain) = + if let Some((_, domain)) = emailaddress_param.rsplit_once('@') { + (emailaddress_param.as_str(), domain) + } else { + ("%EMAILADDRESS%", default_host.as_str()) + }; // Build XML response let mut config = String::with_capacity(1024);