Skip to content

Releases: Glyndor/epistle

v0.3.4

19 Jun 18:31
Immutable release. Only release title and notes can be modified.
9bdec56

Choose a tag to compare

What's Changed

  • perf: criterion benchmark harness for hot-path parsers by @Jaro-c in #509
  • feat(autoconfig): Apple .mobileconfig device profiles by @Jaro-c in #510
  • feat(autoconfig): SRV service-discovery records (RFC 6186) by @Jaro-c in #511
  • chore: release 0.3.4 by @Jaro-c in #512
  • release: 0.3.4 by @Jaro-c in #513

Full Changelog: v0.3.3...v0.3.4

v0.3.3

19 Jun 12:42
Immutable release. Only release title and notes can be modified.
a133aa8

Choose a tag to compare

What's Changed

Full Changelog: v0.3.2...v0.3.3

v0.3.2

19 Jun 11:37
Immutable release. Only release title and notes can be modified.
d902188

Choose a tag to compare

What's Changed

Full Changelog: v0.3.1...v0.3.2

v0.3.1

19 Jun 07:41
Immutable release. Only release title and notes can be modified.
532270f

Choose a tag to compare

What's Changed

  • fix(config): accept the sha256 token-hash format in [api] token_hash by @Jaro-c in #496
  • fix(auth): fail closed on CSPRNG salt errors; cap password length by @Jaro-c in #497
  • chore: release 0.3.1 by @Jaro-c in #499
  • release: 0.3.1 by @Jaro-c in #500

Full Changelog: v0.3.0...v0.3.1

v0.3.0

19 Jun 06:57
Immutable release. Only release title and notes can be modified.
e6f033d

Choose a tag to compare

What's Changed

  • feat: add IMAP SEARCH by @Jaro-c in #78
  • feat: add IMAP STARTTLS on port 143 by @Jaro-c in #80
  • feat: enforce MTA-STS on outbound delivery by @Jaro-c in #83
  • feat: manage accounts dynamically through the API by @Jaro-c in #85
  • feat: add token-hash CLI command by @Jaro-c in #88
  • feat: IMAP STATUS, SUBSCRIBE/UNSUBSCRIBE/LSUB, real INTERNALDATE by @Jaro-c in #101
  • fix: enforce DKIM x= expiration before DNS lookup by @Jaro-c in #102
  • fix(dmarc): enforce pct= sampling on failing messages by @Jaro-c in #104
  • chore(smtp): split session.rs under 500-line limit by @Jaro-c in #105
  • fix(spf): add exists: and ptr: mechanism support by @Jaro-c in #109
  • feat: SPF macro expansion (RFC 7208 §7) by @Jaro-c in #110
  • fix: fold Authentication-Results header per RFC 8601 §2.2 by @Jaro-c in #112
  • fix(spf): repair evaluator.rs broken by squash-merge of #109 and #110 by @Jaro-c in #113
  • fix(dmarc): use Mozilla PSL for organizational domain alignment by @Jaro-c in #107
  • feat(dmarc): parse rua= aggregate report URIs (RFC 7489 §6.3) by @Jaro-c in #111
  • fix: harden API auth — CORS, rate limiting, SHA-256 token by @Jaro-c in #99
  • fix: initialize structured logging in the serve command by @Jaro-c in #92
  • chore: add cargo-deny and fix RUSTSEC-2025-0134 by @Jaro-c in #94
  • docs: add install one-liner using custom URL by @Jaro-c in #95
  • chore(deps): bump actions/attest-build-provenance from 3.0.0 to 4.1.0 by @dependabot[bot] in #86
  • feat: add token-hash CLI command by @Jaro-c in #87
  • fix: limit concurrent connections and enforce idle timeouts by @Jaro-c in #90
  • fix: handle SIGTERM and SIGINT for graceful shutdown by @Jaro-c in #97
  • feat: IMAP SEARCH OR/NOT/date/size criteria by @Jaro-c in #114
  • feat: IMAP IDLE push notifications on mailbox change by @Jaro-c in #115
  • fix: advertise IDLE, LITERAL+ and SASL-IR in IMAP capabilities by @Jaro-c in #116
  • feat: add GET /api/v1/accounts/{name}/mailboxes endpoint by @Jaro-c in #117
  • feat: DMARC aggregate report generation and delivery (RFC 7489 §7) by @Jaro-c in #118
  • fix: accept 8-bit message data (8BITMIME, RFC 6152) by @Jaro-c in #119
  • test: cover flush_pending; bring coverage above 90% gate by @Jaro-c in #122
  • refactor: split files exceeding 500-line limit by @Jaro-c in #120
  • refactor: extract dmarc/aggregate tests under 500-line limit by @Jaro-c in #124
  • feat(tlsrpt): parse TLS-RPT policy records (RFC 8460 §3) by @Jaro-c in #126
  • feat(tlsrpt): generate RFC 8460 §4 reports by @Jaro-c in #128
  • ci: pin reusable workflow caller to v1.0.0 with version comment by @Jaro-c in #133
  • chore: fill copyright owner in LICENSE by @Jaro-c in #134
  • fix(smtp): HELO must not advertise ESMTP extensions by @Jaro-c in #255
  • feat(smtp): advertise LIMITS RCPTMAX in EHLO (RFC 9422) by @Jaro-c in #256
  • test(smtp): cover RFC 2920 command pipelining ordering by @Jaro-c in #257
  • feat(smtp): emit RFC 3463 enhanced status codes by @Jaro-c in #258
  • feat(smtp): REQUIRETLS receive-side (RFC 8689) by @Jaro-c in #260
  • feat(smtp): enforce REQUIRETLS on outbound relay (RFC 8689) by @Jaro-c in #261
  • refactor(smtp): extract trace headers into trace module by @Jaro-c in #264
  • ci: wire DCO and line-limit reusable gates by @Jaro-c in #265
  • ci: wire rust-audit (cargo-audit + cargo-deny) gate by @Jaro-c in #267
  • ci: wire rust-supply-chain SBOM and license attribution by @Jaro-c in #268
  • ci: harden release with verify gate and SBOM by @Jaro-c in #270
  • ci: add cargo-fuzz harness for SMTP wire parsers by @Jaro-c in #271
  • ci: add weekly cargo-mutants mutation-testing report by @Jaro-c in #272
  • feat(directory): sub-addressing (RFC 5233) by @Jaro-c in #274
  • feat(accounts): per-domain catch-all delivery by @Jaro-c in #275
  • feat(accounts): domain aliases by @Jaro-c in #276
  • feat(dnsbl): DNS blocklist lookups (RFC 5782) by @Jaro-c in #277
  • feat(smtp): reject DNSBL-listed clients on inbound mail by @Jaro-c in #278
  • feat(antispam): PostgreSQL foundation for the antispam engine by @Jaro-c in #280
  • feat(antispam): sender reputation store by @Jaro-c in #281
  • feat(antispam): record reputation on accepted inbound mail by @Jaro-c in #283
  • refactor(smtp): split server into mod + run by @Jaro-c in #285
  • feat(antispam): reputation screening and first-time-sender delay by @Jaro-c in #286
  • feat(antispam): Bayesian classifier core by @Jaro-c in #287
  • feat(antispam): Bayesian corpus store and scoring by @Jaro-c in #288
  • feat(antispam): auto-train the Bayesian corpus from delivery outcomes by @Jaro-c in #290
  • feat(rules): delivery ruleset matcher by @Jaro-c in #291
  • feat(rules): apply delivery rulesets to local mail by @Jaro-c in #292
  • feat(antispam): quarantine poor-reputation mail to a Rejects mailbox by @Jaro-c in #293
  • feat(antispam): external scanner hook (HTTP) by @Jaro-c in #294
  • feat(metrics): server-side Prometheus metrics core by @Jaro-c in #295
  • feat(observability): /metrics endpoint and instrumentation by @Jaro-c in #296
  • feat(observability): structured logging and auth-failure events by @Jaro-c in #297
  • feat(acme): account key and JWS request signing (RFC 8555) by @Jaro-c in #298
  • feat(acme): JWK thumbprint, key authorization, and directory by @Jaro-c in #299
  • feat(acme): request payloads and response objects by @Jaro-c in #300
  • feat(acme): client orchestration for account and order by @Jaro-c in #301
  • feat(acme): challenge, finalize and certificate flow by @Jaro-c in #302
  • feat(acme): HTTP-01 challenge responder by @Jaro-c in #303
  • feat(acme): CSR generation for finalize by @Jaro-c in #304
  • feat(acme): reqwest HTTP transport by @Jaro-c in #305
  • feat(tls): in-memory and hot-reloadable acceptors by @Jaro-c in #306
  • feat(acme): end-to-end certificate issuance via HTTP-01 by @Jaro-c in #307
  • feat(config): ACME settings section by @Jaro-c in #308
  • feat(smtp): serve TLS via a hot-reloadable acceptor by @Jaro-c in #309
  • feat(acme): HTTP-01 challenge listener by @Jaro-c in #310
  • feat(acme): automatic certificate renewal by @Jaro-c in #311
  • feat(pop3): command parser (RFC 1939) by @Jaro-c in #312
  • feat(pop3): sans-IO session state machine (RFC 1939) by @Jaro-c in #313
  • feat(pop3): TLS-only network server and live wiring by @Jaro-c in #314
  • feat(arc): chain extraction and structural validation (RFC 8617) by @Jaro-c in #315
  • feat(arc): parse ARC-Message-Signature and ARC-Seal headers by @Jaro-c in #316
  • feat(arc): sign and verify ARC-Message-Signature by @Jaro-c in #317
  • feat(arc): sign and verify ARC-Seal by @Jaro-c in https://github.com/Glyndor/epi...
Read more

v0.2.0

05 Jun 23:47
Immutable release. Only release title and notes can be modified.
a190405

Choose a tag to compare

What's Changed

Full Changelog: v0.1.0...v0.2.0

v0.1.0

05 Jun 23:27
Immutable release. Only release title and notes can be modified.
v0.1.0
38b320b

Choose a tag to compare

What's Changed

  • chore: relicense under Apache 2.0 by @Jaro-c in #1
  • release: promote develop to main by @Jaro-c in #2
  • chore: attribute copyright to Glyndor by @Jaro-c in #3
  • release: promote develop to main by @Jaro-c in #4
  • ci: auto-close pull requests from non-collaborators by @Jaro-c in #5
  • release: promote develop to main by @Jaro-c in #6
  • ci: remove pr-guard, superseded by native PR creation policy by @Jaro-c in #7
  • release: promote develop to main by @Jaro-c in #8
  • chore: add .gitignore for local research notes by @Jaro-c in #9
  • chore: bootstrap Rust workspace, tooling and CI by @Jaro-c in #19
  • feat: add configuration module with secure defaults by @Jaro-c in #20
  • feat: add SMTP server core with RFC 5321 session handling by @Jaro-c in #21
  • feat: add CLI with serve and config-check commands by @Jaro-c in #22
  • feat: add crash-safe filesystem message spool by @Jaro-c in #23
  • fix: accept SIZE and BODY parameters in MAIL FROM by @Jaro-c in #25
  • docs: write project README with features and quick start by @Jaro-c in #27
  • feat: add TLS support with STARTTLS and implicit TLS listeners by @Jaro-c in #29
  • feat: reject recipients outside configured local domains by @Jaro-c in #31
  • docs: update README for TLS and local domain enforcement by @Jaro-c in #32
  • feat: add accounts and local mailbox delivery by @Jaro-c in #34
  • feat: stamp Received trace header on accepted mail by @Jaro-c in #37
  • feat: add SMTP AUTH PLAIN over TLS with argon2id verification by @Jaro-c in #39
  • feat: allow authenticated relay and queue outbound mail by @Jaro-c in #41
  • feat: add outbound queue worker with MX delivery by @Jaro-c in #43
  • feat: verify SPF on unauthenticated inbound mail by @Jaro-c in #45
  • feat: verify DKIM signatures on inbound mail by @Jaro-c in #47
  • feat: enforce DMARC policy on inbound mail by @Jaro-c in #49
  • feat: sign outbound mail with DKIM and add key generation by @Jaro-c in #51
  • docs: document the authentication chain and queue in README by @Jaro-c in #53
  • feat: add management API with status, accounts and queue endpoints by @Jaro-c in #55
  • feat: send DSN bounces for failed outbound delivery by @Jaro-c in #57
  • feat: persist retry state with exponential backoff by @Jaro-c in #59
  • feat: add IMAP4rev2 read-only core over implicit TLS by @Jaro-c in #62
  • feat: add IMAP flags and EXPUNGE by @Jaro-c in #64
  • ci: add release workflow and installer script by @Jaro-c in #67
  • release: v0.1.0 by @Jaro-c in #68

New Contributors

  • @Jaro-c made their first contribution in #1

Full Changelog: https://github.com/Glyndor/mail/commits/v0.1.0