Prompt
We're using a custom SMTP setup and want better visibility into delivery. What are our options?
Latest observation
For a custom SMTP setup, “better visibility into delivery” usually breaks down into a few layers. The best option depends on whether you want to know:
- Was the message accepted by your SMTP server?
- Was it handed off to the recipient’s mail server?
- Was it actually delivered to the inbox?
- Did the recipient open/click it?
Here are the main options:
1. SMTP server logs
If you control the SMTP infrastructure, start here.
What you get:
- Message accepted/rejected
- Authentication success/failure
- TLS negotiation
- Queue status
- Delivery attempts, deferrals, bounces
Pros:
- Most authoritative source
- Useful for troubleshooting
- No third-party dependency
Cons:
- Often technical and noisy
- Doesn’t tell you inbox placement or opens
Best for: operational visibility and debugging.
2. Delivery status notifications (DSNs / bounce handling)
Configure your SMTP system to capture:
- Success/temporary failure/permanent failure notifications
- Bounce reasons
- Deferred delivery retries
What you get:
- Whether delivery succeeded or failed at the recipient side
- Why it failed, when provided
Pros:
- Standardized at the SMTP level
- Direct signal for delivery issues
Cons:
- Not every server sends useful DSNs
- Success notifications are often inconsistent
Best for: bounce management and delivery failure tracking.
3. Message tracking IDs / custom headers
Add a unique identifier to each email, such as:
Message-ID- Custom header like
X-Tracking-ID: <uuid>
Then correlate:
- SMTP logs
- Bounce messages
- Application events
Pros:
- Makes tracing a specific message much easier
- Works well with your own logging/analytics
Cons:
- Doesn’t inherently provide delivery outcome by itself
Best for: correlating email events across systems.
4. Provider webhooks or event callbacks
If your SMTP service or relay supports it, enable event notifications for:
- accepted
- deferred
- delivered
- bounced
- complained/spamreported
- opened/clicked (if supported)
Pros:
- Near real-time delivery visibility
- Easy to integrate into dashboards/alerts
Cons:
- Usually only available with mail providers, not raw SMTP servers
- “Delivered” often means accepted by recipient MX, not inboxed
Best for: monitoring at scale.
5. Email analytics/tracking pixel and link tracking
For visibility into user engagement:
- Add a tracking pixel for opens
- Rewrite links for click tracking
Pros:
- Shows whether recipients interacted with the message
Cons:
- Open tracking is increasingly unreliable due to privacy protections
- Can affect deliverability if overused or poorly implemented
- Doesn’t prove actual delivery, only interaction
Best for: marketing/engagement, not delivery assurance.
6. Seed testing / inbox placement monitoring
Send the same messages to monitored test mailboxes across major providers:
- Gmail
- Outlook
- Yahoo
- etc.
What you get:
- Inbox vs spam placement
- Delivery timing
- Formatting/rendering checks
Pros:
- Real-world insight into deliverability
- Useful for diagnosing spam placement issues
Cons:
- Sampling only
- Requires managed test accounts or a third-party service
Best for: deliverability monitoring and inbox placement.
7. Dedicated deliverability platforms
Use services that specialize in email monitoring and analytics. They can offer:
- SMTP event tracking
- Bounce classification
- Reputation monitoring
- Inbox placement reports
- DNS/authentication checks (SPF, DKIM, DMARC)
Pros:
- Strong visibility with less custom engineering
- Good for ongoing monitoring
Cons:
- Additional cost
- Some lock-in to the platform
Best for: teams that want mature monitoring without building it all themselves.
Practical recommendation
If you want the fastest path to visibility, implement these in order:
- Unique message IDs
- Robust SMTP logging
- Bounce/DSN handling
- Webhook/event tracking if your relay supports it
- Inbox placement testing
- Open/click tracking only if you need engagement metrics
Important distinction
A common misconception is that “delivered” means “seen by the user.”
In email terms:
- Accepted by SMTP server = your server/provider took the message
- Delivered = recipient mail server accepted it
- Inboxed = recipient mailbox put it in inbox
- Opened = user/client loaded the message
Those are very different.
If you want, I can also help you with:
- a recommended logging schema for SMTP events
- how to implement bounce parsing
- a simple delivery-tracking architecture
- examples for Postfix, Exchange, SES, SendGrid, Mailgun, or raw SMTP servers