mirror of
https://github.com/Unstructured-IO/unstructured.git
synced 2025-06-27 02:30:08 +00:00

**Summary** Initial attempts to incrementally refactor `partition_email()` into shape to allow pluggable partitioning quickly became too complex for ready code-review. Prepare separate rewritten module and tests and swap them out whole. **Additional Context** - Uses the modern stdlib `email` module to reliably accomplish several manual decoding steps in the legacy code. - Remove obsolete email-specific element-types which were replaced 18 months or so ago with email-specific metadata fields for things like Cc: addresses, subject, etc. - Remove accepting an email as `text: str` because MIME-email is inherently a binary format which can and often does contain multiple and contradictory character-encodings. - Remove `encoding` parameters as it is now unused. An email file is not a text file and as such does not have a single overall encoding. Character encoding is specified individually for each MIME-part within the message and often varies from one part to another in the same message. - Remove the need for a caller to specify `attachment_partitioner`. There is only one reasonable choice for this which is `auto.partition()`, consistent with the same interface and operation in `partition_msg()`. - Fixes #3671 along the way by silently skipping attachments with a file-type for which there is no partitioner. - Substantially extend the test-suite to cover multiple transport-encoding/charset combinations. --------- Co-authored-by: ryannikolaidis <1208590+ryannikolaidis@users.noreply.github.com> Co-authored-by: scanny <scanny@users.noreply.github.com>
38 lines
721 B
Plaintext
38 lines
721 B
Plaintext
From: alice@example.com
|
|
To: bob@example.com
|
|
Cc: carol@example.com
|
|
Bcc: dave@example.com
|
|
Subject: Example Multipart Digest Email
|
|
Message-ID: <1234567890@example.com>
|
|
MIME-Version: 1.0
|
|
Content-Type: multipart/digest; boundary="boundary123"
|
|
|
|
--boundary123
|
|
Content-Type: message/rfc822
|
|
|
|
From: eve@example.com
|
|
To: alice@example.com
|
|
Subject: First Message
|
|
|
|
This is the first message in the digest.
|
|
|
|
--boundary123
|
|
Content-Type: message/rfc822
|
|
|
|
From: frank@example.com
|
|
To: bob@example.com
|
|
Subject: Second Message
|
|
|
|
This is the second message in the digest.
|
|
|
|
--boundary123
|
|
Content-Type: message/rfc822
|
|
|
|
From: grace@example.com
|
|
To: carol@example.com
|
|
Subject: Third Message
|
|
|
|
This is the third message in the digest.
|
|
|
|
--boundary123--
|