Fix LDAP: Synchronize accounts when expanding mailing list recipients

This commit is contained in:
Maurus Decimus
2026-05-19 18:01:54 +02:00
parent f048e0f0bb
commit 628d5520f6
3 changed files with 26 additions and 0 deletions

View File

@@ -359,6 +359,29 @@ impl<T: SessionStream> Session<T> {
if !self.data.rcpt_to.contains(&member_addr)
&& member_addr.address_lcase != list_addr.address_lcase
{
// Force external directory synchronization
if let Ok(Some(member_domain)) = self.server.domain(&member_addr.domain).await
&& self
.server
.get_directory_for_cached_domain(&member_domain)
.is_some_and(|directory| directory.can_lookup_recipients())
&& matches!(
self.server
.account_id_from_email(&member_addr.address_lcase, false)
.await,
Ok(None)
)
&& let Err(err) = self
.server
.rcpt_resolve(&member_addr.address_lcase, self.data.session_id)
.await
{
trc::error!(
err.span_id(self.data.session_id)
.caused_by(trc::location!())
);
}
member_addr.dsn_info = orcpt.clone().into();
member_addr.flags = list_addr.flags;
self.data.rcpt_to.push(member_addr);