Document the changes shipped since 0.2.0: the X-WS-* header
detection fix (0.5.0), the custom POP3 implementation (0.6.0) and
the dependency and toolchain upgrades (0.7.0). Retitle the 0.2.0
entry to 0.3.0 to match the version actually released in
Cargo.toml.
Bump clap to 4.6.6, imap to 3.0.0-alpha.15 and native-tls to 0.2.18.
The imap upgrade removes the unsound lexical-core 0.7.6 dependency
inherited via nom 5 (RUSTSEC-2023-0086), leaving cargo audit clean.
Drop the unused imap-proto dependency and migrate to the imap 3.x
ClientBuilder and AppendCmd APIs.
Replace third-party POP3 client with a custom implementation using
native-tls for direct TLS socket communication. This change ensures
email messages are retrieved as raw bytes without encoding conversions
that could corrupt email data.
Key improvements:
- Direct byte-level message retrieval preserves original email structure
- Proper handling of POP3 byte-stuffing (doubled leading dots)
- Eliminates dependency on rust-pop3-client which performed unwanted
string conversions and line ending modifications
- Uses only native-tls for TLS connections (already a project dependency)
- Detect X-WS-* headers (e.g., X-WS-Attachment-UUID) as MIME headers
to ensure attachment headers like Content-Type and Content-Disposition
get normalized properly
- Add test case for attachment header normalization
- Bump version to 0.5.0
The normalization fixes malformed continuation lines in attachment
headers generated by Infomaniak webmail, where lines like
"name=file.pdf" are missing the required leading whitespace.