From c35f0aa86b5c751ae79cdbe1e1c5458947cb05f1 Mon Sep 17 00:00:00 2001 From: mdecimus <11444311+mdecimus@users.noreply.github.com> Date: Thu, 6 Nov 2025 10:35:40 +0100 Subject: [PATCH] Increase DSN header size (closes #2344) --- crates/smtp/src/queue/dsn.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/smtp/src/queue/dsn.rs b/crates/smtp/src/queue/dsn.rs index 1c1557a5..99a87c45 100644 --- a/crates/smtp/src/queue/dsn.rs +++ b/crates/smtp/src/queue/dsn.rs @@ -126,6 +126,8 @@ impl SendDsn for Server { } } +const MAX_HEADER_SIZE: usize = 4096; + impl MessageWrapper { pub async fn build_dsn(&mut self, server: &Server) -> Option> { let config = &server.core.smtp.queue; @@ -310,10 +312,10 @@ impl MessageWrapper { .write_dsn_headers(&mut dsn_header, &reporting_mta); let dsn = dsn_header + dsn.as_str(); - // Fetch up to 1024 bytes of message headers + // Fetch up to MAX_HEADER_SIZE bytes of message headers let headers = match server .blob_store() - .get_blob(self.message.blob_hash.as_slice(), 0..1024) + .get_blob(self.message.blob_hash.as_slice(), 0..MAX_HEADER_SIZE) .await { Ok(Some(mut buf)) => { @@ -336,7 +338,7 @@ impl MessageWrapper { } } } - if last_lf < 1024 { + if last_lf < MAX_HEADER_SIZE { buf.truncate(last_lf); } String::from_utf8(buf).unwrap_or_default()