Illustrated man with glasses in dark hoodie next to yellow text boxes reading
Joshua Waldman | March 18th, 2026

How I Got 97% Deliverability on a Domain Google Had Already Written Off

Two burned subdomains, one blacklisting, and a 28% spam rate. Here's the full story with actual screenshots of what I did, and what finally worked to help us send emails that land in the inboxes, and not spam folders.

There's an old saying that the cobbler's son has no shoes. He's just too busy with the paid work needed to feed everyone.

This saying applies to SendX too.

We are an ESP that processes over 300 million emails a month for our customers. We have campaign warmup tools, list cleaning, MX-based segments, AI deliverability monitoring. We built SendPost, the entire infrastructure engine underneath it all.

And until recently, we had not sent marketing emails to our own list.

People noticed. We were getting cold pitches about it constantly. "Hey, you guys don't send any emails. Hire me to run your email program." And they had a point. It's a waste of resources when you're an email marketing platform that doesn't do email marketing. I could feel the pressure building. Either we hire someone to do this, or one of us steps up. We definitely couldn't keep replying "we don't need it." We did.

So I volunteered.

I'm Joshua. I'm the ops guy at SendX. I build processes, unlock bottlenecks, occasionally share my agentic AI workflows with the team. I am not an email marketer. But someone had to eat the dogfood, and I raised my hand.

That was September 2025.

By October 2025, I had burned two subdomains, blasted 100,000 emails in 48 hours on a cold domain, hit a 28% spam rate, annoyed tens of thousands of our own users, and gotten us blacklisted on Proofpoint. Google Postmaster Tools stamped our domain reputation as "Bad." Our deliverability engineers, the ones I face on our online calls every day, were trying very hard to be polite about it.

It took three attempts and six months. But on February 6th, 2026, we sent our first real newsletter, and the results were an email marketers’ dream come true with a 97.05% deliverability on a domain Google had already stamped as “bad.”

Here's the full picture of what happened across all three attempts

Attempt 1

Attempt 2

Attempt 3

List size

63,000 (uncleaned)

54,000 (basic cleaning)

15,000 (verified + threat-checked)

Domain

updates.sendx.io (redirect)

news.sendx.io (fresh)

news.sendx.io (recovering from Bad)

From address

no-reply@getsendx.io

Trevor from SendX

Trevor from SendX

Warmup

Correct addon, no data strategy

Spread Sending (wrong tool)

Two-phase: engaged first, then broader

Delivery rate

83.19%

79.19%

97.05%

Soft bounce

16.53%

20.11%

1.70%

Hard bounce

0.38%

0.79%

0.44%

Microsoft delivery

2.21%

15.62%

recovered

Domain reputation

Bad (never recovered)

Low → recovered after 5+ weeks

High (recovered within 3 weeks)

What killed it

Bad data + bad domain + no-reply

Wrong sending option + duplicate blast

Nothing. It worked.

This post is the story of how I did that.

I'm sharing it because I made every mistake our own customers make, or you might make. I want to share what not to do. And also to let you know that if I can screw it up this badly and still recover, so can you.

Attempt 1: Let the Tools Handle It

We had 63,000 SendX product users sitting in our database. We had a warmup add-on, list cleaning, and the whole stack. My plan was simple. Hand this to someone on the team. Point it at the user list. Let the system ramp it up.

I gave a simple brief "Hey, can you send a warmup campaign to our user list." That was it. I didn't ask anyone to audit the data first or think about segmentation. I didn't even check how old some of these contacts were or whether they'd actually validated their email when they signed up. These were our own product users.

What we sent, and how:

  • 63,000 contacts pulled straight from the product database, going back years

  • Used the domain: updates.sendx.io, a redirect domain with no real web traffic

Warmup started September 5th on the getsendx.io subdomain. The team member configured the warmup addon correctly. It was a textbook ramp.

Email deliverability optimization settings panel showing three warmup options: Spread Sending, Campaign Auto Warmup, and Simple Warmup (selected). Simple Warmup is configured for March 23, 2026 at 9:00 AM in America/Dawson_Creek timezone, with a summary showing 2 total contacts, 1 day duration, and completion date of Mar 23, 2026. A yellow button labeled "View Simple

What happened:

The tools worked. But the data didn't.

  • 83.19% overall delivery rate

  • 16.53% soft bounce rate, and 0.39% hard bounce rate

Line graph showing domain reputation over time from November 2025 to February 2026, with reputation levels ranging from Bad to High. The blue line shows initial high reputation, dropping to low in late November, recovering to high in late December through January, then declining to medium in late January 2026.

83% delivery rate might sound okay if you've never done this before. It's not. It means roughly 1 in 6 emails bounced. And when you look at the provider breakdown, the picture gets worse.

  • Microsoft delivered 2.21% of our emails. The other 97.79% soft bounced.

  • Gmail and Yahoo were fine. Microsoft rejected almost everything.

Email deliverability dashboard showing three metric panels: API Metrics with 120,120 processed and 942 dropped emails; Deliverability Metrics with 116,937 sent, 0 SMTP dropped, 79.19% delivered, 0.79% hard bounced, and 20.11% soft bounced; and Engagement Metrics with 5,805 opened and 208.32% clicked. Below is a stacked area

Gmail and Yahoo were forgiving enough to let us through, probably because the warmup ramp looked legitimate from their side. But Microsoft delivered 2% of our emails and soft bounced everything else. Nearly every single email we sent to an Outlook, Hotmail, or Live address did not get sent.

Within one week, Google Postmaster Tools marked the subdomain as "Bad." The reputation never recovered.

Email deliverability statistics table showing provider performance metrics from Oct 26-30, 2025. Table displays data for gmail, default, microsoft, yahoo, aol, and proofpoint providers across columns for processed, dropped, sent, SMTP dropped, delivered, hard bounced, soft bounced, opened, and clicked emails with percentages. A purple tooltip shows "1080 out of 3327 sent" for the yahoo row.

Email deliverability dashboard showing God Mode active for nurturing@sendx.io account. Displays three metric sections: API Metrics (15.4K processed, 54 dropped), Deliverability Metrics (15.3K sent, 95.41% delivered, 2.65% hard bounced, 2.28% soft bounced), and Engagement Metrics (7.9K opened, 152.19% clicked). Below is a

What went wrong:

Two things were broken before we sent a single email, and we didn't even realize it.

First was the from address. It was a "no-reply" address, which is basically telling the recipient and the provider that you don't want a conversation. Providers read that as a signal that you're not a relationship sender, and they filter accordingly.

Second was the domain itself. getsendx.io was a redirect with no real web presence behind it. There was no traffic, no content, no history of being an actual website. To a mailbox provider, that looks like a domain someone spun up just to push bulk email. And that's pretty much what it was.

The final nail in the coffin was our list.

It was 63,000 contacts accumulated over a decade of running SendX. That includes people who signed up and never came back, people who typed their email wrong, addresses attached to companies that don't exist anymore. We just pointed the tools at the entire pile and hit go. We didn't clean the list.

What I learned:

The best sending tools in the world will do exactly what you tell them. They'll warm up beautifully, ramp at the right pace, follow every best practice in the sequence. But if the data underneath is rotten, you're just automating failure faster. I should have started with cleaning the data.

Attempt 2: I'll Do It Myself. How Hard Can It Be?

After watching attempt 1 fall apart, I decided I needed to take this over personally. The delegation approach clearly didn't work. This time I was going to bring a real strategy, use every tool we had properly, and do it right.

Changes I made:

  • I abandoned the updates.sendx.io subdomain. It was dead. I set up a fresh one, news.sendx.io, and got the DNS records authenticated.

  • I also fixed the obvious mistakes from round one. The ‘from address’ was now a real person, "Trevor from SendX," with a proper reply-to.

Then I built a smart sending plan (or so I thought):

I was going to use our MX-Based Segments feature to separate the campaign by mail provider. Gmail in one bucket, Yahoo and Outlook and Hotmail in another, business domains in a third, and everything else in a fourth. The logic was sound. Each provider behaves differently when it comes to sending velocity, and each one interrogates trust with new domains in its own way. So I'd use normal warmup speed for Gmail, which tends to be more forgiving, and slow warmup speeds for the others.

I had my segments, a warmup plan, a cleaned list of 54,000 contacts, and I knew the tools this time. I felt good about it.

What actually happened:

  • 79.19% overall deliverability

  • 20.11% soft bounce rate

  • 0.79% hard bounce rate

Line graph showing user reported spam rate for news.sendx.io over 60 days from October to December 2025. A sharp spike to 28.3% occurs on October 29, 2025. The rate remains low (under 5%) for most of the period, with another smaller spike in early December before returning to baseline levels around 2-3%.

  • Gmail dropped to 76.24% delivery with a 23.60% soft bounce rate

  • Microsoft delivered 15.62% of our emails

  • Yahoo landed at 52.12% delivery with a 15.45% hard bounce rate

Deliverability optimization settings showing Campaign Auto Warmup option selected, with date set to 2026-03-23 at 09:00 AM in America/Dawson_Creek timezone. Plan summary displays 2 total contacts, 1 day duration, completion date 2026-03-24, with status marked as Optimized. Yellow button reads "View Campaign Auto Warmup Plan."

Google Postmaster Tools recorded a 28.3% user-reported spam rate on October 29th

Email deliverability statistics table for news.sendx.io domain showing provider breakdown with columns for processed, dropped, sent, SMTP dropped, delivered, hard bounced, soft bounced, opened, and clicked metrics across Microsoft, default, Office365, and Gmail providers from November 1-6, 2025.

Delivery error rate hit 83.3% in a single day

Email metrics dashboard showing API statistics (120,120 processed, 942 dropped), Deliverability data (116,937 sent, 0 SMTP dropped, 79.19% delivered, 0.79% hard bounced, 20.11% soft bounced), and Engagement rates (5,805 opened, 208.32% clicked).

Every single provider suffered. I didn't just damage the subdomain. I damaged it with every major mailbox provider simultaneously, in two days.

By November 6th, news.sendx.io dropped to "Low" reputation on Google Postmaster Tools.

Line chart showing domain reputation for updates.sendx.io over 90 days from September 18 to October 8, 2025. The y-axis shows reputation levels from Bad to High, with the line starting at Low reputation, dropping to Bad around September 26, then recovering to Low by the end of the period.

Line chart showing email authentication success rates over 90 days from mid-November to mid-December 2025. DMARC success rate shown in yellow at 100%, SPF success rate in red at 100%, and DKIM success rate in blue at 100%, all maintaining constant rates across the time period. Y-axis shows volume of traffic passing authentication from 0% to 100%.

By December 9th, we were blacklisted on Proofpoint and I was filling out delisting applications.

Deliverability optimization settings panel showing Spread Sending option selected. Date field shows 2026-03-23, time set to 09:00 AM in America/Dawson_Creek timezone. Spread duration is 4 hours for 2 total emails, sending at rate of 1 email every 120 minutes, completing Mar 23, 2026, 1:00 PM. Yellow notification box displays UTC offset GMT-7.

What went wrong:

I clicked the wrong buttons.

sigh.

To explain how, I need to quickly walk you through how SendX handles deliverability optimization when you're scheduling a campaign. There are three options:

1) Spread Sending distributes your emails evenly over a time window you choose. You set the hours, and everything goes out within that window. It's meant for established domains where you just want to pace delivery. It doesn't ramp anything.

Line graph showing domain reputation for news.sendx.io over 90 days from mid-November to mid-December 2025. The reputation starts at medium, spikes to high around November 19-21, drops to low through late November, then gradually recovers to high by early December, maintaining that level through December 10.

2) Campaign Auto Warmup is what you use on a new or recovering domain. It gradually increases volume day by day, building reputation with providers over days or weeks. The system calculates a plan and handles the pacing. This is what I should have used.

Email deliverability statistics table for Gmail showing 98.34% delivery rate with expanded error code details. The table displays codes 452, 550, and 552 with descriptions of inbox storage issues and inactive accounts, along with their occurrence counts of 181, 75, 12, and 4 respectively.

3) Simple Warmup is a more predictable version. It starts from 500 contacts and increases by 50% to 20% daily across four phases. Less adaptive, but you can see the exact schedule upfront.

Email deliverability statistics table showing provider performance for domain updates.sendx.io, with Microsoft, default, and Yahoo providers listed. Table displays metrics including processed emails, dropped, sent, SMTP dropped, delivered, hard bounced, soft bounced, opened, and clicked rates. Microsoft shows 97.79% soft bounce rate, default provider shows 99.26% delivery rate, and Yahoo shows 99.01% delivery rate.

I chose Spread Sending on a cold domain with 54,000 contacts, spread over 24 hours. So instead of gradually ramping volume over two weeks to build reputation, I sent the entire list in a single day.

Email deliverability dashboard showing API metrics and engagement metrics with a stacked area chart. The top section displays processed emails (63,848), unprocessed (508), sent (62,723), SMTP dropped (0), deliveries (93.30%), hard bounces (0.72%), soft bounces (0.04%), opened (5,260), and clicked (179.37%). Below is an area chart showing email volume trends over time with different colored layers representing sent

Then I messed up the segmentation, and the entire campaign duplicated.

Two days later, the same email went out to the same people again. All at once.

Dashboard showing email deliverability metrics with three sections: API Metrics (120,120 processed, 942 dropped, 116,937 sent), Deliverability Metrics (0 IP rejects, 79.19% delivered, 0.79% hard bounces, 20.11% soft bounced), and Engagement Metrics (5,805 opens, 208.32% clicks). Below is a stacked area chart displaying metrics over

100,000+ emails hit the same inboxes in 48 hours from a domain that had never sent a single email before. To mailbox providers, that looks exactly like spam. A brand new domain suddenly pushing massive volume with no sending history is one of the clearest signals they use to identify bad senders.

Data table showing email deliverability metrics with columns for Name, Processed, Delivered, Sent, Rate Dropped, Delivered, Hard Bounced, Soft Bounced, Opens, and Clicked. The table displays statistics for Gmail and various error codes (452, 550, 562) with their associated descriptions and numerical values. Date range shown is November 17, 2025 to December 17, 2025.

And here's what made it extra painful.

Our authentication was perfect the entire time. DKIM, SPF, DMARC, all passing at 100%. This wasn't a DNS problem or a technical misconfiguration. The infrastructure was set up correctly.

Line graph showing authorized traffic over time with three data series represented by different colored lines - gray for total requests, orange for cached requests, and green for success rate. The y-axis shows volume from 0 to 500, and the x-axis displays dates or time periods.

The tools were working. I just used the wrong tool for the wrong situation and pointed it at too many people too fast.

What I learned:

1) Learn your tools properly. Spread Sending and Campaign Auto Warmup both control volume over time, but they do very different things. One paces delivery on an established domain. The other builds reputation on a new one. I mixed them up.

2) Get a second pair of eyes. We have deliverability engineers at SendX who do this every day. I should have had one of them review my setup before hitting send. That one step would have saved us a subdomain, a blacklisting, and two months of recovery.

3) Don't assume you know the tool because you know email. I see this with our own customers too. They come in confident from another platform, skip the learning curve, and run into the same wall I did. Every platform works differently. Take the time.

Einstein Said Insanity Is Doing the Same Thing Twice. I Nearly Did It Three Times.

They say once is ignorance, twice is a choice, and three times is just foolishness. I didn't want to be a fool.

So instead of rushing straight into attempt three, chasing the dopamine hit of finally being the guy who got SendX to send its own emails, I stopped. Put down the send button. Stepped away from the dashboard. And actually thought about what was going wrong.

I knew the sending plan, or tools were never the real issue.

That left me with one other thing…

To look at the data

I went to our product team and asked for two things I hadn't considered before:

  • Whether each user had actually validated their email address when they signed up

  • What date they signed up

My hypothesis was that we were probably hitting spam traps and sending to addresses that were either too old to care about SendX or were fake and never validated in the first place.

You might say…

"But, you cleaned your list."

Yes. And here's why that wasn't enough.

List cleaning tells you what it knows. It flags addresses that are known to be valid and addresses that are known to be invalid. But there's a third category most people don't think about: **unknown**. Addresses the tool can't confidently classify either way. They're not automatically suppressed. You have to decide what to do with them.

And when you have thousands of unknowns, it's tempting to include them. More eyeballs, right? What's the harm in a small risk?

The harm is that "might be fine" at scale turns into "definitely not fine" very quickly. The older and colder your list, the more unknowns you have, and the more likely those unknowns contain the kind of addresses that will wreck your reputation.

List cleaning only handles the hard bounce problem

It catches the obviously dead addresses. But it doesn't solve the soft bounce problem. For that, I needed to find the hidden threats.

I ran our Threat Checks addon in SendX, which integrates with Webula, a tool built specifically to identify spam traps and other poison-pill addresses.

Quick note on spam traps for anyone who hasn't dealt with them:

A spam trap is a valid email address that's kept active on purpose. Nobody uses it. Nobody engages with it. It just sits there, waiting to see who sends to it. When you do, it tells blacklist services like Spamhaus that you're probably sending to an old, poorly maintained list. Hit enough of them and you land on a blacklist. Those blacklists then feed into the filtering decisions that Gmail, Microsoft, and Yahoo make about your emails. That's exactly how we ended up on Proofpoint.

I ran Threat Checks on our full list of 91,000 contacts.

It found over 8,000 known issues. Spam traps, honeypots, disposable domains, the works. That's roughly 9% of our "clean" list that was still toxic. After list cleaning.

Changing your underpants won't stop diarrhoea

If your data is bad, it doesn't matter how good your tools are or how perfectly you configure your warmup. Bad data follows you. It doesn't care what ESP you're on, what subdomain you use, or how slowly you ramp. The emails still bounce, the spam traps still fire, and your reputation still tanks.

Make sure the people you're sending to actually want to hear from you. Only send to opted-in, validated addresses.

This is why we don't support purchased lists at SendX. They're just really hard to make work. It's also why we sometimes get new customers who bring over bad data from their previous provider, hoping our infrastructure will somehow produce different results. It won't.

Attempt 3: 76% of My List Had to Go

After two failures, a blacklisting, and six months of learning things the hard way, I finally sat down with our deliverability team and built a plan where I wasn't allowed to rush.

What I did:

My original list was 63,000 contacts. I removed anyone who hadn't validated their email, anyone older than two years, and anyone flagged by Threat Checks. My list was down to 15,000. That's a 76% cut.

Ouch.

But I'd rather send to 15,000 real people than 63,000 ghosts.

Of those 15,000, I identified about 8,500 who had actually engaged (who had opened an email in the last 90 days) with my previous campaigns. This was my warmup list.

I also made a decision that went against my instincts.

Instead of spinning up yet another fresh subdomain, I was going to try to salvage news.sendx.io. The one I had destroyed in attempt 2. The one sitting at "Bad" reputation. My thinking was that constantly creating new subdomains starts to look suspicious to providers. If I could recover a bad domain with clean data and proper sending, that would be a stronger foundation than starting from scratch again.

Then finally, I sent two campaigns, staggered one week apart.

Campaign 1 went out on January 19th to the engaged segment, about 8,500 contacts. I set this on a Normal speed warmup, calculated to take about two weeks to complete.

Campaign 2 went out on January 26th to the rest of the clean list.

Analytics dashboard showing email deliverability metrics with a 95.41% delivered rate, 2.65% hard bounced rate, and 2.28% soft bounced rate. The dashboard includes API metrics showing 15.4K processed and 54 rejected messages, engagement metrics with 7.9K opened and 152.19% clicked rate, and a turquoise area chart displaying email volume trends over time from January to June 2026.

Everyone who was verified, threat-checked, and signed up within the last two years, minus the people already in campaign 1. I set this on the slowest warmup option and started it a full week after the first campaign, so the engaged segment had time to build some trust with providers first.

What happened:

Campaign 1 (engaged segment):

  • 97.73% deliverability over 11 days

  • 0.73% hard bounce rate

  • 1.7% soft bounce rate

Campaign 2 (broader clean list):

  • 93.48% deliverability

  • 4.28% hard bounce rate (likely business domains on our list that I could have segmented out)

  • 2.78% soft bounce rate

Then on February 6th came the real test. We had to send an actual campaign to announce an upcoming webinar to 8,000 users. We wanted to use Spread Sending to throttle the delivery over two days.

And that got us a 97.05% deliverability.

Our IP reputation improved.

Bar chart showing IP reputation scores over time, with red bars at 99% for dates in October and green bars at 99% for dates in November, indicating a transition from poor to good email deliverability performance.

And even domain reputation went from ‘low’ to ‘high.’

Line graph showing domain reputation score over time from November 2021 to February 2025, with reputation levels marked as High, Medium, and Low on the y-axis. The graph shows significant fluctuations, with notable spikes and drops in domain reputation throughout the time period.

Six months after I first volunteered to just send a few emails, SendX finally had an email marketing channel.

What I learned:

1) Start with the people who already care. My engaged segment delivered at 97.73%. The broader list hit 93.48%. That gap exists because providers saw the first campaign land well, saw real people opening and clicking, and decided we were worth trusting with more volume. Starting with engaged contacts isn't just a best practice you read about in a blog post. It's the thing that makes everything after it possible.

2) Cut your list until it hurts. I went from 63,000 to 15,000 and it felt like throwing away potential. But those 48,000 contacts I removed weren't potential. They were dead weight that had already sunk two attempts. A smaller list of real people will always outperform a bigger list of maybes.

3) Be patient. The whole process from the first warmup send to the real newsletter took about 3 weeks. That's not fast. But compared to the six months I wasted trying to skip steps, three weeks of doing it properly was nothing.

4) Keep sending consistently after you get there. Providers don't just want to see that you can send well once. They want to see a pattern. Regular volume, steady cadence, predictable behavior. That's what keeps your reputation healthy long term.

You Don't Need to Take Six Months to Figure This Out

It took me that long because I made every possible mistake along the way. But the actual fix, once I stopped tripping over myself, took three weeks, and lots of patience. Clean the data ruthlessly. Start with engaged contacts. Warm up properly. Be patient. That's it. There's no secret beyond doing the work.

The tools that eventually got me to 97% deliverability on a domain Google had already written off are the same tools available to every SendX user.

Campaign Auto Warmup, List Cleaning, Threat Checks, MX-Based Segments, Spread Sending. They all work. You just have to use them right. And if you're not sure how, we have a deliverability team that will actually help you, not send you a link to a knowledge base article and wish you luck.

Start a free trial of SendX →

Ready to switch to a better email platform?

Join thousands of businesses that have already made the smart choice. Start your free trial today and see the difference SendX can make.

Get Started
No credit card required
Cancel anytime