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>
23 lines
452 B
Plaintext
23 lines
452 B
Plaintext
From: sender@example.com
|
|
To: recipient@example.com
|
|
Subject: Example Multipart/Alternative Email
|
|
Message-ID: <1234567890@example.com>
|
|
MIME-Version: 1.0
|
|
Content-Type: multipart/alternative; boundary="boundary123"
|
|
|
|
--boundary123
|
|
Content-Type: text/plain; charset="UTF-8"
|
|
|
|
This is a simple email message.
|
|
|
|
--boundary123
|
|
Content-Type: text/html; charset="UTF-8"
|
|
|
|
<html>
|
|
<body>
|
|
<p>This is a simple email message.</p>
|
|
</body>
|
|
</html>
|
|
|
|
--boundary123--
|