How to Warm Up a New Sending Domain Without Hurting Deliverability

How to Warm Up a New Sending Domain Without Hurting Deliverability

Email domain warm up is the practice of increasing sending volume on a new or newly moved domain gradually, so that mailbox providers build a positive reputation for it before you ask them to accept large volumes. The mechanics matter more than the folklore: reputation is attached to the domain in the envelope and in the visible headers, and the receiving side decides how much of your mail to accept based on what it has observed about that domain over time.

If you have moved from a shared sending service to your own domain, or you have just registered a domain for transactional and marketing mail, you start with no history at all. Receiving systems have no reason to trust you and every reason to be cautious. The goal of warm up is to give them evidence, slowly and honestly.

What Actually Carries the Reputation During Email Domain Warm Up

Two identifiers do most of the work. The first is the envelope sender, the address in MAIL FROM during the SMTP conversation, which is usually a subdomain like bounce.example.com or mail.example.com. The second is the domain in the From: header, which is what a human sees. Mailbox providers look at both, and they also look at whether the two align under DMARC.

This is why warming a domain is not just about volume. If your SPF record does not authorize the sending host, or your DKIM signature does not verify, or your DMARC policy is missing, no amount of patience will help. Fix authentication first, then warm up.

dig +short TXT example.com
"v=spf1 include:_spf.example.net -all"
dig +short TXT mail._domainkey.example.com
"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ..."

Check that the SPF record authorizes the exact host that will send the mail, and that the DKIM selector you will sign with resolves. If you are using a subdomain for sending, publish its own SPF and DKIM records rather than relying on the parent domain, so that the sending subdomain accumulates reputation on its own.

How Receiving Systems React to a New Domain

When a mailbox provider sees mail from a domain it has never seen before, it has no engagement history to lean on. It may defer the connection with a temporary failure, throttle the number of messages per connection, or accept the mail but route it to the spam folder. A 421 or 450 response during the SMTP conversation is a deferral, not a rejection. Your sending software should honor it and retry later rather than treating it as a hard failure and bouncing the message.

This is the part most people get wrong. A transactional sender that retries aggressively after a deferral looks like a sender that does not respect back pressure. A sender that backs off and retries on the schedule the remote server suggests looks like a well behaved one. The difference accumulates in your favor.

Typical deferral text looks like this in the SMTP transcript:

250 2.1.0 Ok
250 2.1.5 Ok
354 End data with <CRLF>.<CRLF>
250 2.0.0 Ok: queued as 4F3A1B2C
421 4.7.0 Try again later, closing connection

If you see a 4xx, slow down. If you see a 5xx, stop and read the text, because that is a permanent rejection and it usually means an authentication or policy problem rather than a volume problem.

Planning the Ramp

Warm up is a ramp, not a switch. Start with a small daily volume from the new domain, concentrated on your most engaged recipients, and increase it over days and weeks rather than hours. The exact numbers depend on your list size and on how the receiving systems respond, so watch the responses rather than following a fixed chart.

The important discipline is to keep the ramp smooth. If you send a thousand messages on day one and ten thousand on day two, you have not warmed anything, you have spiked. Spikes are what trigger throttling and filtering. A gradual increase, with the same content quality and the same authentication, gives the receiving side a consistent signal.

Segment by engagement. Send first to recipients who have opened or clicked recently, because their engagement is the strongest positive signal you can generate. Suppress addresses that have never engaged, hard bounces and spam complaints for the duration of the warm up. Every complaint during warm up costs disproportionately more than it will later.

If you run your own MTA, you can cap the outbound rate per domain directly. With Postfix, a transport or policy service can enforce a per destination rate, and a simple way to start is to throttle at the queue level:

postconf -e 'default_destination_rate_delay = 2s'
postconf -e 'smtp_destination_concurrency_limit = 2'
postconf -e 'smtp_destination_recipient_limit = 20'
postfix reload

The default_destination_rate_delay setting inserts a delay between deliveries to the same destination, which spreads your volume out. The concurrency and recipient limits keep you from opening many parallel connections to one provider. Both are crude, both are effective, and both should be relaxed as the domain earns trust. If you send through an external relay instead, look for the equivalent rate limit and connection cap in its configuration rather than assuming it handles this for you.

What to Watch While Warming

Monitor the SMTP responses, not just the delivery counts. Deferrals, connection resets and throttling messages are the feedback loop. If deferrals rise as volume rises, you are going too fast and you should hold at the previous level for a while. If they stay flat, you can continue increasing.

Watch your DMARC aggregate reports if you have them enabled, because they tell you which hosts are sending as your domain and whether authentication is passing. A sudden appearance of an unauthorized sender is a problem you want to see early. Watch bounce rates and complaint rates too, and treat any upward movement as a reason to pause the ramp rather than push through it.

Keep the content consistent. Changing templates, links and sending patterns at the same time as the ramp makes it impossible to tell what caused a change in delivery. Warm up is about isolating one variable, the domain's reputation, and letting everything else stay steady.

What to Do Next

Before you send the first message from the new domain, verify SPF, DKIM and DMARC with dig and a real test send, set a conservative rate limit in your MTA or relay, and pick the engaged segment you will start with. Then send small, watch the SMTP responses, and increase only when the previous level stayed clean. Warm up rewards patience and punishes shortcuts, and the domain you are warming will carry that reputation for as long as you use it.

Related articles

Subscribe to our newsletter

Get the latest hosting tips, performance insights, and industry news.