mirror of
https://github.com/abhinavxd/libredesk.git
synced 2025-11-03 13:33:32 +00:00
fix: update Message-ID determination logic to prefer IMAP-parsed IDs over raw headers
This commit is contained in:
@@ -276,18 +276,18 @@ func (e *Email) processEnvelope(ctx context.Context, client *imapclient.Client,
|
|||||||
}
|
}
|
||||||
var fromAddress = strings.ToLower(env.From[0].Addr())
|
var fromAddress = strings.ToLower(env.From[0].Addr())
|
||||||
|
|
||||||
// Determine final Message ID - prefer extracted from raw headers, fallback to IMAP-parsed
|
// Determine final Message ID - prefer IMAP-parsed, fallback to raw header extraction
|
||||||
messageID := extractedMessageID
|
messageID := env.MessageID
|
||||||
if messageID == "" {
|
if messageID == "" {
|
||||||
messageID = env.MessageID
|
messageID = extractedMessageID
|
||||||
if messageID != "" {
|
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
|
// Drop message if we still don't have a valid Message ID
|
||||||
if messageID == "" {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user