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.

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

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.

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.


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

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

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

Delivery error rate hit 83.3% in a single day

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.


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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.