Custom SMTP Event Types
| Event Type | ID | Trigger |
|---|---|---|
| CSProcessed | 58 | SendPost accepted the message and queued it for relay to your SMTP server |
| CSSent | 59 | Your MTA returned 2xx on relay (message accepted by your server for delivery) |
| CSDelivered | 60 | Agent reports MTA status=sent (delivered to recipient’s mail server) |
| CSDeferred | 61 | Agent may send deferred; accepted by API but not stored (not shown in UI) |
| CSDropped | 62 | Relay to your SMTP failed after all retries; or non-retryable pre-send failure (e.g. no verified return path domain, suppression, validation) |
| CSHardBounced | 63 | Agent bounced/soft_bounced classified as hard (by SMTP description); or bounce processor (async DSN) |
| CSSoftBounced | 64 | Agent bounced/soft_bounced classified as soft (by SMTP description); or bounce processor |
| CSOpen | 65 | Recipient loaded the tracking pixel |
| CSClick | 66 | Recipient clicked a tracked link |
| CSSpamReport | 67 | FBL complaint (out of scope for initial release) |
| CSUnsubscribe | 68 | Recipient used the unsubscribe link/header |
Event Flow
CSSent vs CSDelivered
CSSent vs CSDelivered
CSSent = Your MTA accepted the message from SendPost (synchronous SMTP 2xx response).
CSDelivered = Your MTA successfully delivered to the recipient’s mail server (reported by the event agent from your MTA logs).
This mirrors SendPost’s native model: Sent = accepted by sending infrastructure; Delivered = accepted by recipient’s mail server.
CSDropped
CSDropped
Emitted when SendPost could not relay to your SMTP server after all retries (connection failure, timeout, or 4xx/5xx from your server). This is a relay failure, not a recipient bounce. CSHardBounced is only from the agent (MTA status=bounced) or the bounce processor (async DSN).
Bounces: Agent vs Bounce Processor
Bounces: Agent vs Bounce Processor
Agent: Sends
bounced or soft_bounced; SendPost classifies each to CSHardBounced or CSSoftBounced using the SMTP description (keyword-based). Bounce processor: Receives async DSNs to sp-bounce.{domain} and emits CSHardBounced or CSSoftBounced when the original message was sent via Custom SMTP.CSDeferred not in UI
CSDeferred not in UI
The agent may send
deferred events. SendPost accepts them but does not store deferred events (by design). CSDeferred (61) will not appear in the Events page or analytics.Event Sources Summary
| Source | Events |
|---|---|
| SendPost queue | CSProcessed |
| Synchronous SMTP response from your MTA | CSSent (2xx), CSDropped (after retries exhausted) |
| Event reporting agent (MTA logs) | CSDelivered, CSHardBounced, CSSoftBounced (deferred accepted but not stored) |
| SendPost tracking | CSOpen, CSClick, CSUnsubscribe |
| Bounce processor | CSHardBounced, CSSoftBounced |
Next Steps
- Event reporting agent for CSDelivered, CSDeferred, CSHardBounced from your MTA
- Analytics to view event statistics
- Troubleshooting event processing