Skip to content

Track SMTP submission robustness improvements #722

Description

@bbottema

SMTP callers need to know what the server accepted, when a retry could duplicate mail, and what happened when a connection failed. This tracks the independently reviewable improvements in 03_SMTP_ROBUSTNESS_IMPROVEMENT_PLAN.

The project builds on the 10.0 submission receipts (#710), terminal observer (#712), and exact EML support (#713). It does not add automatic retries, a durable spool, or mailbox-delivery guarantees.

Phases 1 and 2 are scheduled for implementation now. Step 3 (#726) has reached its provider safety gate and is blocked pending safe Angus/pool interruption hooks; the queue controls in #725 can be reviewed independently. Later steps remain proposals; they can ship in separate releases.

Step Child issue Planned release Shipped release User-visible result
1 #723 10.0.0 Per-recipient replies and conservative retry guidance
2 #725 10.0.0 Bounded async demand and visible overflow
3 #726 10.0.0 Deadlines and protocol-aware cancellation
4 Not created Unscheduled SMTP capability diagnostics
5 Not created Unscheduled Explicit authentication-over-TLS policy
6 Not created Unscheduled Complete DSN envelope metadata
7 Not created Unscheduled Per-message REQUIRETLS
8 Not created Unscheduled SMTPUTF8 and 8BITMIME requirements
9 Not created Unscheduled SIZE against finalized transmitted bytes
10 Not created Unscheduled Reproducible conformance and fault-injection tests

Each scheduled step gets its own linked sub-issue, exact release milestone, tests, documentation, and release entry. Keep this parent open until the steps are completed or explicitly moved to a successor plan. PIPELINING/CHUNKING remain parked under #699. Benchmarking is outside the current work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions