Hi everyone,
I’m working on an internal email marketing CRM for a company that manages a large number of contacts across multiple sending domains.
We are facing several email marketing and deliverability problems, and I’m trying to design a centralized solution. I would really appreciate advice from people who have experience building production email systems.
Problems we need to solve
The main requirements are:
- Email verification before sending
- MX record lookup
- DNS checks
- Invalid email detection
- Actual bounce detection
- Permanent vs temporary bounce handling
- Automatic suppression of bad addresses
- Spam complaint tracking
- Unsubscribe tracking
- Delivery tracking
- Historical email behaviour
- SPF/DKIM/DMARC monitoring
- Sending-domain health monitoring
- Recipient-limit tracking
- Centralized database across multiple sending domains
- Pre-send validation
- Post-send validation
- Relevant/personalized marketing emails
The company currently operates multiple domains/accounts, and provider sending/recipient limits can also become an issue. Recipient limits may depend on actual recipients rather than simply the number of messages, so To/CC/BCC and external recipients need to be accounted for.
There is also automated forwarding/routing in the company's environment.
We are not looking to bypass Gmail or other provider restrictions. The goal is to detect risk, control sending, maintain list hygiene and prevent avoidable deliverability problems.
My proposed solution
I’m considering building a centralized CRM that acts as the source of truth for contacts, domains, campaigns, verification results, delivery events and suppression.
The workflow I’m considering is:
Before sending:
Contact->Email syntax validation->MX lookup->DNS checks->Email verification->Historical behavior->Suppression check->SPF / DKIM / DMARC->Domain health->Recipient usage / sending-limit check-> Pre send health decision->Send
For email verification, I’m considering ZeroBounce.
For MX/DNS validation, I’m considering either:
- Performing DNS/MX lookups directly from the backend
- Using the verification information provided by ZeroBounce
- Or potentially using both
I’m unsure whether using both would be useful or just redundant.
Actual bounce tracking
For email delivery, I’m considering SendGrid.
My understanding is that the application should not simply look at the HTTP response from the SendGrid API and assume that a particular response means the email bounced.
Instead:
CRM->SendGrid->Recipient mail server->Delivery result->SendGrid event->Webhook->CRM backend->Central database
The provider event would update the contact and campaign history.
Permanent bounces would result in automatic suppression, while temporary failures would be monitored separately.
Centralized suppression
One of the most important requirements is a global suppression system.
If the company has multiple sending domains, I want one centralized database containing the contact's complete email history.
A permanent bounce, spam complaint or marketing unsubscribe should prevent that address from being selected for future marketing campaigns, regardless of which sending domain is being used.
The contact should remain in the database for historical/audit purposes rather than being deleted.
Pre-send health check
Before releasing a campaign, I want the CRM to check:
Email validation->MX / DNS->Verification->Historical behavior-> Suppression->SPF->DKIM->DMARC->Domain health->Recent bounce/complaint rate->Recipient count->Sending limits/risk
Then the campaign would receive a status such as:
- READY
- READY WITH
- WARNINGS BLOCKED
Post-send processing
After sending:
Delivered->update delivery history
Temporary failure / deferred->record and monitor
Permanent bounce->suppress contact
Spam complaint->suppress from marketing
Unsubscribe->suppress from marketing
The system would continuously update the centralized database and campaign/domain metrics.
Domain health
The company already has SPF, DKIM and DMARC configured.
I’m considering monitoring:
- SPF
- DKIM
- DMARC
- Bounce rate
- Complaint rate
- Delivery rate
- Sending volume
- Provider errors
- Gmail/domain reputation signals
I’m also considering Google Postmaster Tools for Gmail-related sender reputation monitoring.
Technology choices
Currently I’m considering:
Email delivery:
SendGrid
Email verification:
ZeroBounce
DNS/MX:
Direct DNS lookup + possibly ZeroBounce
Database:
PostgreSQL
Domain/reputation monitoring:
SPF / DKIM / DMARC + Google Postmaster Tools
I’m also wondering whether AWS or Cloudflare would be useful for DNS monitoring, background jobs, queues, webhook processing, rate limiting, security and monitoring — or whether they would just add unnecessary complexity.
Questions
I would really appreciate feedback on these points:
- Is this overall approach technically sound?
- Should I perform my own MX/DNS lookup in addition to ZeroBounce?
- What is the recommended way to perform reliable pre-send email verification?
- Is SendGrid Event Webhook suitable for reliable bounce/delivery tracking?
- What is the best way to distinguish temporary and permanent bounces?
- What is the best practice for a global suppression list across multiple sending domains?
- Should contact health and domain/sender health be treated separately?
- What signals should be used for an email health score?
- What is the best way to keep the centralized database updated in near real time?
- Would AWS or Cloudflare provide meaningful value for this system?
- What important deliverability considerations am I missing?
- Are there any concerns with this approach at very large contact volumes?
I’m mainly looking for practical production experience and recommendations on what I should change or improve.
Thanks!
Source: r/emaildeliverability · by /u/Hammad-Zubari