Expose message ID list from `ReferencesHeader`
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Feature or enhancement
Proposal:
When sending, parsing or validating mails which are replies to other mails it is necessary to access the message IDs from the In-Reply-To and References headers. These, however, are currently not exposed.
# Example use case
if "In-Reply-To" in msg and "References" in msg:
[in_reply_to_token] = msg["In-Reply-To"].message_ids
[*_, most_recent_reference_token] = msg["References"].message_ids
if in_reply_to_token.value != most_recent_reference_token.value:
raise ValueError(f"Error: References list end must match In-Reply-To message ID")
A workaround is to access the private _parse_tree property which does expose the message_id, though like any private property that should obviously be avoided. This is comparable to AddressHeader which already exposes addresses.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading ReferencesHeader and the existing AddressHeader API, then inspect how ReferencesHeader currently exposes its private _parse_tree data. Make the message IDs available through the public header interface so the shown In-Reply-To and References usage works without private access, and verify that the exposed values preserve the existing message ID information.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 70/100