Fix Autodiscover v2: Read email address from query parameters

This commit is contained in:
Maurus Decimus
2026-06-15 15:29:58 +02:00
parent 91f9e77934
commit 0d131afc03
5 changed files with 15 additions and 2 deletions

View File

@@ -42,6 +42,7 @@ sha2 = "0.11"
rkyv = { version = "0.8.10", features = ["little_endian"] }
form-data = { version = "0.6.0", features = ["sync"], default-features = false }
mime = "0.3.17"
percent-encoding = "2.3.1"
compact_str = "0.9.0"
hashify = { version = "0.2" }

View File

@@ -35,6 +35,7 @@ use hyper::{
service::service_fn,
};
use hyper_util::rt::TokioIo;
use percent_encoding::percent_decode_str;
use jmap::{
api::{
ToJmapHttpResponse, event_source::EventSourceHandler, request::RequestHandler,
@@ -471,8 +472,12 @@ impl ParseHttp for Server {
self.is_http_anonymous_request_allowed(session.remote_ip)
.await?;
let path_email = path.find(|segment| segment.contains('@')).map(|segment| {
percent_decode_str(segment).decode_utf8_lossy().into_owned()
});
return self
.handle_autodiscover_v2_request(req.uri().query())
.handle_autodiscover_v2_request(req.uri().query(), path_email.as_deref())
.await
.map(|result| match result {
Ok(resource) => resource.into_http_response(),