Persist before sending
Keep the message and intended delivery as application state.
Home / Product / Outbound mail
Send communication reliablyQueue outbound messages as stored work, record delivery attempts, retry failures, and keep a sent copy when the application account supports it.
A provider can time out after accepting a message. A network can fail before delivery. If the application only waits for a synchronous response, the team cannot tell whether to retry or what the customer experienced.
Daptin can write outbound messages to an outbox, process pending work through a scheduled action, record attempts, and calculate later retries. In clustered operation, shared claims reduce duplicate processing.
A successful sender path can also add the message to Sent. The model exposes the evidence operators need while keeping the guarantee honest: public mail is not exactly once.
Keep the message and intended delivery as application state.
See failure context instead of relying only on transient logs.
Retry pending work on a schedule with duplicate-reduction controls.
Outbound mail does more when it can reuse the records, people, access rules, and workflows already in your application.
Build the message directly or from a template.
Store it in the outbox with its mail-server relationship.
A scheduled processor claims and sends eligible work.
Mark success or preserve error and next-retry state.
Start from the experience you want to create; the backend capability supports the work behind it.
Send confirmation or recovery mail with visible delivery work.
Queue status changes or reports produced by an action.
Create a message from application state and retain attempt evidence.
These capabilities share the same application context, so each one makes outbound mail more useful.
No self-hosted mail system can promise exactly-once delivery. Monitor queue age and repeated failures, design idempotent product messaging, and operate DNS, reputation, suppression, bounce, and abuse handling.
Run Daptin locally, explore the live administration surface, and follow one complete application path.