Part of #722, step 2 (phase 2). A busy or stalled SMTP server can leave unlimited prepared emails waiting behind the async workers. Add opt-in per-Mailer queue capacity and explicit immediate-rejection or bounded-wait overflow behavior, independently of worker and connection-pool sizes. Preserve caller-owned executors, lazy simple batches, scheduling-failure observation and resource ownership. Expose content-free queue diagnostics and document the use case, Java API, properties, Spring and CLI configuration. Implement directly on codex/10.0.0; leave changes for review before commit. Historical demand: #656 and #85. The related deadline/cancellation step must not confuse timing out a completion future with stopping SMTP work.
Part of #722, step 2 (phase 2). A busy or stalled SMTP server can leave unlimited prepared emails waiting behind the async workers. Add opt-in per-Mailer queue capacity and explicit immediate-rejection or bounded-wait overflow behavior, independently of worker and connection-pool sizes. Preserve caller-owned executors, lazy simple batches, scheduling-failure observation and resource ownership. Expose content-free queue diagnostics and document the use case, Java API, properties, Spring and CLI configuration. Implement directly on codex/10.0.0; leave changes for review before commit. Historical demand: #656 and #85. The related deadline/cancellation step must not confuse timing out a completion future with stopping SMTP work.