Skip to content

Warm up mailboxes

Shipped Warm-up between your own mailboxes, with a daily ramp, spam rescue and replies, and inbox placement per mailbox and per domain.

A new inbox that sends cold email straight away lands in spam. Google and Microsoft trust a mailbox once it has a history of sending mail that people open, rescue from spam and reply to. Warm-up builds that history for you, before your first sequence and for as long as you keep it on.

Mailboxes with warm-up on: each mailbox’s inbox placement over 7 days and its daily warm-up volume

When warm-up is on, your mailboxes email each other:

  1. A slow ramp. A mailbox sends 2 warm-up emails on its first day and 2 more each day after that, up to its daily target (20 by default). Sends are spread over the day.
  2. Natural mail. Each email is a short, plain note between colleagues, written fresh from varied parts. Nothing in it marks it as warm-up: the receiving mailbox recognises it by the Message-ID the engine recorded when it sent it.
  3. Engagement. About every 20 minutes the receiving mailbox looks for its warm-up mail in the inbox and the spam folder. It marks each message read, moves it to the inbox if it landed in spam, and answers some of them (30% by default) a few minutes to an hour and a half later, in the same thread.
  4. Placement. Where each message landed is recorded: inbox, spam, or missing if it never arrived within two days.

Warm-up mail never shows in your Inbox, doesn’t count towards daily limits, and isn’t in your sending stats. It only goes between the active mailboxes of one workspace, and never to an address on your suppression list.

In the web app, open Mailboxes. Until any mailbox is warming, the page offers Warm up N mailboxes for all of them. Afterwards, each mailbox’s menu has Turn on warm-up and Turn off warm-up. Mailboxes that need attention are left out until they are fixed.

Over the API, turn it on for chosen mailboxes, a whole pool, or every mailbox in the workspace:

Terminal window
# Every mailbox in a pool. Leave out pool_id for all, or send mailbox_ids instead.
curl -X POST https://outflare.example.com/v1/workspaces/$WS/mailboxes/warmup \
-H "Authorization: Bearer $OUTFLARE_TOKEN" -H "Content-Type: application/json" \
-d '{"enabled": true, "pool_id": "'$POOL'", "daily_target": 20, "reply_rate": 30}'

The answer is {"updated": 12}. One mailbox can also be changed with PATCH /v1/workspaces/{ws}/mailboxes/{id} and {"warmup": {"enabled": false}}.

Setting Field Default What it does
On or off enabled off Turning it on starts the ramp again from day one.
Daily target daily_target 20 Warm-up emails a day once ramped up, 1 to 100.
Reply rate reply_rate 30 Percent of received warm-up emails that are answered, 0 to 100.

Plan on two weeks of warm-up before a new mailbox sends sequences, and leave it on afterwards to protect its reputation.

A mailbox’s warm-up over 14 days: messages that reached the inbox, landed in spam, or never arrived

  • Per mailbox. The Warm-up column on Mailboxes shows the share of the last 7 days’ warm-up mail that reached the inbox, and today’s volume on the ramp. Click it for a 14-day chart. The API returns the same as warmup on each mailbox, and day by day from GET /v1/workspaces/{ws}/mailboxes/{id}/warmup.
  • Per domain. Each sending domain sums its mailboxes’ placement. Below 90% it raises an inbox_placement warning, and below 75% a critical issue, each with what to do.
  • Workspace. The Mailboxes page shows overall Inbox placement, and the overview warns when it drops below 75%. GET /v1/workspaces/{ws}/stats returns it as warmup_inbox_rate.
Placement What to do
90% or more Healthy. Keep warm-up on alongside your sequences.
75% to 90% Some mail lands in spam. Lower the domain’s daily limits and keep warming.
Under 75% Most mail goes to spam. Pause cold sending from the domain, fix its DNS issues, and let warm-up run until placement recovers.

The MCP server has set_warmup, which takes the same settings as the API, and get_mailbox_warmup for a mailbox’s 14-day history. list_mailboxes includes each mailbox’s warm-up results, so an agent can check a mailbox is ready before adding it to a sequence’s pool.