IP Warmup by ISP — Per-Receiver Ramp Strategy in AcelleMail

Gmail, Microsoft, Yahoo, and iCloud each react differently to a brand-new IP. A single uniform warmup curve ramps too fast for the strict receivers and too slow for the forgiving ones. This guide shows how to split warmup by recipient ISP using AcelleMail's tags, segments, and per-server sending limits — all from the UI, no scripts.

Why split warmup by ISP

A fresh sending IP has no reputation anywhere, but the major mailbox providers don't all decide that at the same speed. Gmail tends to reward engagement quickly. Microsoft (Outlook / Hotmail / Live) is sensitive to volume spikes. Yahoo and Apple iCloud are more conservative and give you the least feedback when they don't like what they see.

If you run a single warmup curve for the whole list, you're stuck splitting the difference: ramp fast enough to keep Gmail happy and you over-send to the strict receivers; ramp slow enough for iCloud and you waste days of Gmail's appetite. Splitting the warmup by receiving ISP lets each provider get the pace it's comfortable with.

The mechanics are the same three building blocks AcelleMail already gives you — all from the dashboard, no SQL, no scripts:

  1. Tag each subscriber with the ISP they belong to.
  2. Build one segment per ISP from those tags.
  3. Reserve a rate-limited sending server for each ISP's campaign and ramp its limit independently.

Step 1 — Tag subscribers by their mailbox provider

You don't need to touch the database. The Subscribers table lets you search by email text, select everything that matches, and bulk-apply a tag.

Open your list, go to the Subscribers tab, and type a provider's domain into the search box — for example gmail.com.

Once the table is filtered, open the Select dropdown at the top of the filter bar. It offers Whole page (just the visible rows) and All subscribers (everything matching the current filter) — choose All subscribers so the tag lands on every match, not just page one. Then open the Actions dropdown and click Add tag(s). In the popup, enter a tag like isp:gmail and confirm.

Repeat for each provider you want to warm separately. A practical starting set:

Search term Tag to apply
gmail.com (and googlemail.com) isp:gmail
outlook.com, hotmail.com, live.com isp:outlook
yahoo.com, ymail.com, aol.com isp:yahoo
icloud.com, me.com, mac.com isp:icloud

Run a separate search + Select → All subscribers + Add tag(s) pass for each domain. The remainder — corporate domains behind Proofpoint, Mimecast, Cisco, and the like — you can leave untagged and handle as a general group, or tag as isp:b2b.

Tip: if you're importing a fresh list, you can carry tags in at import time too. AcelleMail's import recognizes a column literally named tags; on the import wizard's settings step, the Also overwrite tags with the value from your CSV's "tags" column option lights up when that column is present. So if your export already has a provider/tags column, you won't have to back-fill by hand.

Step 2 — Build one segment per ISP

A segment is a saved, dynamic filter — as tags change, the segment's membership updates automatically. That's exactly what you want for a multi-week warmup.

In your list, open the Segments tab and click Create segment. Give it a name like Gmail — warmup, then in the Conditions block click Add condition.

In the condition row:

  • Open the field dropdown and pick Tag.
  • Set the operator to has tag.
  • Enter isp:gmail as the value.

Save. Repeat for isp:outlook, isp:yahoo, and isp:icloud. You now have one segment per ISP that you can target independently.

The tag operators AcelleMail offers are has tag and does not have tag — that's all you need here. If you ever want to combine conditions (say, Gmail and opened in the last 30 days), the Matching dropdown at the top of the form switches the segment between matching all conditions and any condition.

Step 3 — Reserve a rate-limited server per ISP

This is where the actual throttling happens. In AcelleMail the sending rate lives on the sending server, not on the campaign — so the way to give each ISP its own ramp is to point each ISP's campaign at a server whose limit you control.

Set the per-server sending limit

In the sidebar, go to Sending → Sending servers and click into the server you're warming.

Customer sending-server list

On the server's edit page, the Configuration card has a Sending limit field. It's a dropdown of presets plus a Custom option — pick Custom to set an exact value, a time base, and a unit (per minute / hour / day).

Sending limit field — custom quota value, base, and unit

AcelleMail enforces this limit for that server: once the server hits its per-period quota, the queue holds back until the period rolls over. There's no separate throttle inside the campaign — you set it once here, per server.

For a true per-ISP warmup you'd run a separate server (and ideally a separate IP) for the strict receivers and a more permissive one for Gmail, then raise each server's limit on its own schedule as that ISP's reputation grows.

Point the campaign at that server

When you create the warmup campaign, the setup step has a Show advanced settings toggle; under it sits the Sending servers section. By default a Use all servers randomly switch is on, meaning the campaign draws from every server in your pool. Turn that switch off to narrow the pool, then tick only the server you reserved for this ISP. If you leave the switch on, the campaign uses your whole pool — fine for general sends, but for warmup you want the explicit pick so the ISP's traffic only flows through its dedicated, rate-limited server.

Step 4 — Run one campaign per ISP, ramp independently

For each ISP, on each warmup day:

  1. Create a new campaign.
  2. On the Recipients step, choose that ISP's list, then in the Segment picker select the ISP segment. Left untouched it stays on All subscribers and sends to everyone — so be sure to pick the segment.
  3. On the setup step, open Show advanced settings, turn off Use all servers randomly, and tick the sending server you reserved for that ISP.
  4. Schedule it (or launch immediately).

Because the throttle is on the server, you ramp by editing that server's Sending limit — not by changing anything on the campaign. As an ISP's reputation strengthens, raise its server's limit; if you see trouble, lower it. The strict receivers (Microsoft, Yahoo, iCloud) get a slower, lower ramp; Gmail can climb faster.

General principle, not exact numbers: start each ISP small and increase only when the previous send came back clean. The conservative providers should reach full volume days after Gmail does. Resist the urge to ramp all four on the same curve — that's the whole reason you split them.

Step 5 — Standardize the curve with a Warmup Strategy (admin)

If you operate the install (admin access), the Warmup Strategies screen lets you save a reusable ramp definition and attach it to a sending server, so the ramp-up guidance and safety thresholds stay consistent.

Warmup Strategies — built-in strategies with growth curve and risk level

Each strategy starts from one of three presetsCautious, Balanced, or Aggressive — which you then customize: Starting volume, Daily increment, Growth strategy (linear or exponential), Max bounce rate, and so on. You can save as many named strategies as you like; the screenshot above shows several, including a custom long-haul strategy built for enterprise senders.

For per-ISP warmup, the pattern is: attach a Cautious (or a custom slow) strategy to the servers carrying Microsoft / Yahoo / iCloud traffic, and a Balanced strategy to the Gmail server. Each server then ramps on its own assigned curve.

Watch the signals as you ramp

You don't need a per-domain dashboard inside AcelleMail to run this — you mainly need to keep each ISP's bounces and complaints low before you step its volume up. Two reliable places to watch:

  • The campaign's Bounce log — open a campaign → Bounce log tab. Each failed delivery is listed with the recipient, a Bounce type badge (the kind the receiver reported), and the receiving server's verbatim Reason. Because you sent one campaign per ISP, the bounce log for the Gmail campaign is your Gmail signal, the Yahoo campaign's log is your Yahoo signal, and so on — no cross-domain filtering needed.
  • The provider's own postmaster tools — Google Postmaster Tools for Gmail and Microsoft SNDS for Outlook give you reputation and spam-rate data straight from the receiver. Yahoo and iCloud don't publish a postmaster portal, so for those you lean on the per-campaign bounce log.

The rule to ramp by: hold an ISP at its current server limit if that ISP's last campaign shows rising bounces or complaints; only raise the limit after a clean send.

Common issues

What you see What to do
Segment shows fewer subscribers than you expected The tag wasn't applied to everyone — re-run the Subscribers search + Select → All subscribers + Add tag(s) for that domain. Remember to use All subscribers (matches the whole filter), not Whole page.
One ISP's bounces creep up mid-warmup Lower that ISP's server Sending limit and hold for a few days before trying to step it up again.
Campaign went to the whole list instead of one ISP The Segment picker was left on All subscribers. Edit the campaign's Recipients step and choose the ISP segment for the list.
Campaign used the wrong server Use all servers randomly was left on, so it used the whole pool. Re-open the setup step's Show advanced settings, turn the switch off, and tick the server you reserved for that ISP.

What to do after

  • Once an ISP is fully warmed, fold its segment back into your normal sends — the segment keeps updating as tags change, so it stays useful for ongoing reputation isolation.
  • Keep an eye on overall reputation, not just warmup, with Sender reputation monitoring.

Related articles

13 comments

8 comments

  1. nadia.r.cl
    For very low-volume senders (< 5k/month), oes warmup even matter? Or just send and let the provider's shared pool absorb the trickle?
  2. m.schmidt78
    For very low-volume senders (< 5k/month), does warmup even matter? Or just send and let the provider's shared pool absorb the trickle?
    1. admin
      there's no built-in way today. Two workarounds: (1) cron + custom script polling the API every N minutes, (2) webhook-driven if your event source supports it. Most operators go with #2. :)
    2. admin (edited)
      Short answer: yes — set the MySQL session variable from your worker's .env on boot and you'll get the longer timeout per connection. We'll add an explicit recipe in the next refresh.
  3. emma.whitaker
    We hit a Spamhaus listing once. Self-service delisting was actually fast (< 24h) but the reputation recovery took weeks. Not the listing itself that hurt — the user complaints that caused it...
    1. admin (edited)
      Useful field report. The 'kill -9 was the only fix' edge case is rare but real — well note it as a fallback. tbh
  4. ahmed.hassan.c…
    Bookmarked. Going to share with the team — we've been winging warmup and it shows in the numbers...
    1. admin
      glad it landed. drop suggestions in the comments and we'll incorporate them on the next refresh.
  5. danrey.dev
    we warmed up a dedicated ip last fall. the 2-week ramp this article describes is on the aggressive side — gmail in particular punishes anything faster than ~3-4 weeks. we did 4 weeks and had a clean ramp.
  6. jmorrison.itop…
    if you're warming a new IP after a known issue, consider seeding with transactional mail first (password resets, order confirmations). Higher engagement rate per send than marketing — helps the reputation ramp.
  7. hung.nguyen.it
    This is the clearest IP warmup schedule I've found. The volume table at the top is what I'm referencing daily.
  8. lucas.bernard.…
    Confirming the Postmaster Tools data lag — sometimes 48 hours, sometimes longer. Don't make decisions on a single day's data
    1. admin
      Thanks for the numbers. Worth pulling into a follow-up post on volume-tier sizing.

More in Sending & Deliverability