Skip to content

Subject

mail_intake.parsers.subject

Subject line normalization utilities for Mail Intake.


Summary

This module provides helper functions for normalizing email subject lines to enable reliable thread-level comparison and grouping.

Normalization is intentionally conservative to avoid altering semantic meaning while removing common reply and forward prefixes.

Functions

normalize_subject

normalize_subject(subject: str) -> str

Normalize an email subject for thread-level comparison.

Parameters:

Name Type Description Default
subject str

Raw subject line from a message header.

required

Returns:

Name Type Description
str str

Normalized subject string suitable for thread grouping.

Notes

Responsibilities:

1
2
3
4
- Strips common prefixes such as ``Re:``, ``Fwd:``, and ``FW:``
- Repeats prefix stripping to handle stacked prefixes
- Collapses excessive whitespace
- Preserves original casing (no lowercasing)

Guarantees:

1
- This function is intentionally conservative and avoids aggressive transformations that could alter the semantic meaning of the subject