Skip to content

feat(parser): implement RFC 5322 compliant email address parser#16

Open
simisdav55-oss wants to merge 1 commit into
UnsafeLabs:mainfrom
simisdav55-oss:email-parser
Open

feat(parser): implement RFC 5322 compliant email address parser#16
simisdav55-oss wants to merge 1 commit into
UnsafeLabs:mainfrom
simisdav55-oss:email-parser

Conversation

@simisdav55-oss
Copy link
Copy Markdown

Summary

Fully conformant RFC 5322 email address parser with complete ABNF grammar coverage from sections 3.2 through 3.4, plus obsolete syntax from section 4.4.

Implementation

  • parser.py: AddressParser class with parse() and parse_address_list() methods
  • RFC5322Address: Dataclass with display_name, local_part, domain, group support
  • _Tokenizer: Handles FWS unfolding, nested comments, quoted-pairs

Features

  • Simple addr-spec: user@example.com
  • Display name variants: "John Doe" <john@example.com>, John Doe <john@example.com>
  • Quoted local-parts: "john.doe"@example.com
  • Domain literals: user@[192.168.1.1], user@[IPv6:2001:db8::1]
  • Group syntax: Team: alice@a.com, bob@b.com;
  • Nested comments and folding whitespace
  • Non-strict mode for obsolete productions (§4.4)
  • 39 unit tests covering all acceptance criteria

Implement full ABNF grammar from sections 3.2-3.4 and obsolete syntax from section 4.4. Closes UnsafeLabs#1
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.

1 participant