Skip to content

feat(fetch): support X-GM-THRID, X-GM-MSGID, X-GM-LABELS in FetchParser#275

Merged
robert-virkus merged 1 commit into
Enough-Software:mainfrom
dev10m-adv:main
Apr 25, 2026
Merged

feat(fetch): support X-GM-THRID, X-GM-MSGID, X-GM-LABELS in FetchParser#275
robert-virkus merged 1 commit into
Enough-Software:mainfrom
dev10m-adv:main

Conversation

@dev10m-adv
Copy link
Copy Markdown
Contributor

📌 Description

This update enhances the IMAP fetch parsing by adding support for Gmail-specific extensions:

X-GM-THRID → Gmail thread ID
X-GM-MSGID → Gmail unique message ID
X-GM-LABELS → Gmail labels associated with the message

These fields are now parsed directly within the FetchParser, making them available alongside standard IMAP attributes.

🚀 Motivation

Gmail provides additional metadata that is not part of the standard IMAP specification but is essential for building a modern email client:

Thread grouping (conversation view)
Reliable message identification across folders
Label-based organization (instead of traditional folders)

Previously, this data was not accessible through the parser, limiting Gmail-specific functionality.

🔧 Changes
Extended FetchParser to recognize and extract:
X-GM-THRID
X-GM-MSGID
X-GM-LABELS
Properly map parsed values into the fetch result structure
Ensure backward compatibility with non-Gmail IMAP servers
✅ Impact
Enables proper threading support (conversation view)
Improves message deduplication and syncing
Allows accurate label synchronization for Gmail accounts
No breaking changes for existing IMAP functionality
⚠️ Notes
These fields are Gmail-specific and may not be present in other IMAP providers
Consumers should handle null/absence cases gracefully
🧪 Testing
Verified against Gmail IMAP (imap.gmail.com)
Tested parsing of:
Messages with multiple labels
Threaded conversations
Standard IMAP responses (non-Gmail) to ensure no regression

@robert-virkus
Copy link
Copy Markdown
Member

Thanks for your contribution and sorry for the long response time!

@robert-virkus robert-virkus merged commit 9fdcb62 into Enough-Software:main Apr 25, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants