[Feature] Reusable SMTP batch sessions with preflight, reconnect, and pause-on-failure #16

Closed
opened 2026-07-14 20:08:43 +02:00 by zemion · 3 comments
Owner

Problem / User Need

Campaign mail sending should improve SMTP reliability and progress behavior by reusing SMTP sessions per campaign batch where possible, reconnecting on connection failure, preflighting DNS/connectivity, and pausing on systemic SMTP failures.

Acceptance Criteria

  • SMTP sending can reuse a session/connection for a campaign batch when server policy allows it.
  • Transient connection failures trigger controlled reconnect behavior.
  • Preflight checks validate DNS/connectivity/auth where possible before the send starts.
  • Systemic SMTP failures pause or block the batch instead of producing many repeated failures.
  • Progress and failure reasons are clear to campaign users.

Notes / Decisions

Campaign send-progress UI should consume the clearer progress/failure states.

## Problem / User Need Campaign mail sending should improve SMTP reliability and progress behavior by reusing SMTP sessions per campaign batch where possible, reconnecting on connection failure, preflighting DNS/connectivity, and pausing on systemic SMTP failures. ## Acceptance Criteria - SMTP sending can reuse a session/connection for a campaign batch when server policy allows it. - Transient connection failures trigger controlled reconnect behavior. - Preflight checks validate DNS/connectivity/auth where possible before the send starts. - Systemic SMTP failures pause or block the batch instead of producing many repeated failures. - Progress and failure reasons are clear to campaign users. ## Notes / Decisions Campaign send-progress UI should consume the clearer progress/failure states.
Author
Owner

Drift note, 2026-07-20: the shared dirty workspace contains an uncommitted process-local rate-limit fallback. Treat it only as WIP for this delivery-safety issue: process-local coordination is not sufficient for multi-worker production, and integration requires an explicit distributed/fail-safe contract plus tests.

Drift note, 2026-07-20: the shared dirty workspace contains an uncommitted process-local rate-limit fallback. Treat it only as WIP for this delivery-safety issue: process-local coordination is not sufficient for multi-worker production, and integration requires an explicit distributed/fail-safe contract plus tests.
zemion added the area/apicodex/readymodule/mail
priority
p2
status
ready
type
feature
labels 2026-07-29 14:15:04 +02:00
Author
Owner

Implementation complete locally across Mail a044fee and Campaign 69e6588, c846c24.

Delivered:

  • policy-bounded reusable SMTP sessions with DNS/connect/TLS/auth preflight, NOOP health checks, reuse limits, and controlled reconnect before the next message;
  • phase-aware, stable SMTP error classifications and no unsafe replay after message transmission starts;
  • campaign batch context, progress/connection metadata, and systemic-failure pause behavior in both send-now and worker paths;
  • campaign UI pause/progress/failure reporting plus user/admin documentation and regression coverage.

Verification: 137 Mail tests (plus 22 subtests) and 405 Campaign tests (plus 26 subtests) passed; lint, TypeScript, UI contract checks, and the complete workspace focused gate passed.

The issue remains open only until the local commits are pushed.

Implementation complete locally across Mail `a044fee` and Campaign `69e6588`, `c846c24`. Delivered: - policy-bounded reusable SMTP sessions with DNS/connect/TLS/auth preflight, NOOP health checks, reuse limits, and controlled reconnect before the next message; - phase-aware, stable SMTP error classifications and no unsafe replay after message transmission starts; - campaign batch context, progress/connection metadata, and systemic-failure pause behavior in both send-now and worker paths; - campaign UI pause/progress/failure reporting plus user/admin documentation and regression coverage. Verification: 137 Mail tests (plus 22 subtests) and 405 Campaign tests (plus 26 subtests) passed; lint, TypeScript, UI contract checks, and the complete workspace focused gate passed. The issue remains open only until the local commits are pushed.
Author
Owner

Published and verified on remote main: Mail a044fee, Campaign 69e6588 and c846c24. The repository has no configured commit-status contexts/workflow files; the recorded complete focused workspace gate is the integration evidence. Acceptance criteria are satisfied, so this issue is being closed.

Published and verified on remote `main`: Mail a044fee, Campaign 69e6588 and c846c24. The repository has no configured commit-status contexts/workflow files; the recorded complete focused workspace gate is the integration evidence. Acceptance criteria are satisfied, so this issue is being closed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-mail#16