Releases: Glyndor/epistle
Releases · Glyndor/epistle
v0.3.4
Immutable
release. Only release title and notes can be modified.
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
Immutable
release. Only release title and notes can be modified.
v0.3.2
Immutable
release. Only release title and notes can be modified.
v0.3.1
Immutable
release. Only release title and notes can be modified.
v0.3.0
Immutable
release. Only release title and notes can be modified.
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...
v0.2.0
Immutable
release. Only release title and notes can be modified.
v0.1.0
Immutable
release. Only release title and notes can be modified.
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
Full Changelog: https://github.com/Glyndor/mail/commits/v0.1.0