Changelog
This changelog is generated automatically from GitHub Releases.
v0.0.6
2026-09-30 · GitHub
0.0.6 (2026-09-30)
Documentation
v0.0.5
2026-09-30 · GitHub
0.0.5 (2026-09-30)
Features
- attach files and embed inline images (8d43923), closes #37
- build the RFC 5322 message (6a853d1), closes #41
- carry custom headers on a message (0ac7440), closes #40
- print a message with ConsoleBackend (edee2fa), closes #42
- rewrite data: images into inline images (ec9b755), closes #38
- send a Markdown message (0c33fe8), closes #39
- send an HTML message with derived plain text (c140764), closes #36
- send over Graph on the large path (3869679), closes #46
- send over Graph on the small path (484a232), closes #45
- send over SMTP with no credential or a password (600714b), closes #43
- send over SMTP with OAuth (2fea1d4), closes #47
- send over the Gmail API (2177623), closes #44
Bug Fixes
- authenticate a Password through one SMTP mechanism (16bccba), closes #71
- declare all in epistole.exceptions (0aa43b5)
- make one attempt per Gmail token request (db0c21e), closes #52
- map a Graph token reply by its status (69a565a), closes #63
- map a null or empty draft id or uploadUrl to ProviderError (870f3a9), closes #56
- map a token reply google-auth or msal cannot read to ProviderError (d9de3cc), closes #55
- name the from address’s domain in EHLO (#82) (846d705)
- raise RejectedError for a custom Resent-Bcc over SMTP (797a415), closes #57
- raise ValueError for a custom Resent-Bcc on every backend (cf47954), closes #64
- raise ValueError for a surrogate in any text a caller passes (4adbd4e), closes #59
- raise when an <img src> names a cid: that no inline image holds (d682378)
- reject a content id that is not ASCII (5dfffca), closes #41
- reject a line break in a subject, address, filename or content id (76822c7), closes #42
- request a token on every connect() for an AuthorizedUser (654c2ab), closes #53
- resolve the loose ends from the #48 audit (7807781), closes #62
- write UTF-8 headers for a non-ASCII custom header value (483cd94), closes #58
Documentation
- decide how the code resolves the loose ends from the #48 audit (3502596), closes #62
- decide that a custom Resent-Bcc is a ValueError on every backend (dbd98a6), closes #64
- decide that a non-ASCII custom header value needs UTF-8 headers (4680a58), closes #58
- decide that a null or empty draft id or uploadUrl is ProviderError (8aa901c), closes #56
- decide that a surrogate is a ValueError wherever a caller passes text (6ba3d71), closes #59
- decide that an unreadable token reply is ProviderError (3978c4b), closes #55
- decide that connect() ignores a saved AuthorizedUser token (8f5fa7d), closes #53
- decide that Gmail makes one attempt per token request (ecfd45e), closes #52
- decide that Graph maps a token reply by its status (6b41d93), closes #63
- decide that SMTP raises RejectedError on a custom Resent-Bcc (7409ffd), closes #57
- define mail service in the glossary (#84) (56812c4)
- explain each value in a docstring under it (6fa644d)
- record that Epistole does not accept a domain-literal address (a00762e), closes #65
- record that the README shows no example for every public name (3fd05ad)
- record what implementing #62 measured (4b6188a)
- record what implementing #63 measured (17572ee)
- record what the iCloud live sends measured (91f4daa), closes #66
- run every README example against MemoryBackend (9d188bb), closes #48
v0.0.4
2026-09-23 · GitHub
0.0.4 (2026-09-23)
Features
Documentation
v0.0.3
2026-09-10 · GitHub
0.0.3 (2026-09-10)
Documentation
- add html authoring guide to readme (aa8030b)
- collapse the ADRs into the v1 api spec (25171f6)
- decide how a message carries custom headers (8203e40)
- decide how an address is written and when it is checked (9424d34)
- decide what the test backends record (d9fccd4)
- record that css stays as written (1b65853)
- research css in an html body (9287a3e)
- rule live-send verification out of scope (128d18c)
- update the package name explanation (7f1e7b2)
- write up the #8 html-body findings (a5a351e)
v0.0.2
2026-09-10 · GitHub
0.0.2 (2026-09-10)
Features
- rename package from herma to epistole (a06dce5)
Documentation
- add contributing guide (78285cd)
- add prose spelling rule to CONTRIBUTING (eaaa749)
- add wayfinder research findings (354a182)
- record attachment and inline-image decisions (33c96c7)
- record backend connection lifecycle (4c4dd75)
- record credentials as values in each backend module (bc17259)
- record graph as json on two paths chosen by size (7caa2c1)
- record how a backend plugs into a message (5b9b4d8)
- record message immutability and chaining semantics (0777d05)
- record plain-text derivation and content entries (8ca885a)
- record receipt and error model (1e97e22)
- record that herma has no escape hatch and no unsupported-feature mechanism (489c5b3)
- record the HTTP backend dependency and transport strategy (bf004a6)
- settle the domain vocabulary (babbed2)