From 550a3fa801d1a0faed4d00fcfcc937f310f153bf Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Wed, 20 Aug 2025 04:26:23 +0530 Subject: [PATCH] fix: update Message-ID determination logic to prefer IMAP-parsed IDs over raw headers --- internal/inbox/channel/email/imap.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/inbox/channel/email/imap.go b/internal/inbox/channel/email/imap.go index d3d2eda8..1920326b 100644 --- a/internal/inbox/channel/email/imap.go +++ b/internal/inbox/channel/email/imap.go @@ -276,18 +276,18 @@ func (e *Email) processEnvelope(ctx context.Context, client *imapclient.Client, } var fromAddress = strings.ToLower(env.From[0].Addr()) - // Determine final Message ID - prefer extracted from raw headers, fallback to IMAP-parsed - messageID := extractedMessageID + // Determine final Message ID - prefer IMAP-parsed, fallback to raw header extraction + messageID := env.MessageID if messageID == "" { - messageID = env.MessageID + messageID = extractedMessageID if messageID != "" { - e.lo.Debug("using IMAP-parsed Message-ID as fallback", "message_id", messageID, "subject", env.Subject, "from", fromAddress) + e.lo.Debug("using raw header Message-ID as fallback for malformed ID", "message_id", messageID, "subject", env.Subject, "from", fromAddress) } } // Drop message if we still don't have a valid Message ID if messageID == "" { - e.lo.Error("dropping message: no valid Message-ID found in raw headers or IMAP parsing", "subject", env.Subject, "from", fromAddress) + e.lo.Error("dropping message: no valid Message-ID found in IMAP parsing or raw headers", "subject", env.Subject, "from", fromAddress) return nil }