Mailbox Warmup
New mailboxes have no sending reputation. Sending cold emails from a fresh mailbox will likely land in spam. Cleanmails includes a coordinated warmup pool that builds reputation by exchanging real emails with other Cleanmails instances worldwide.
How the Pool Works
Unlike simple peer-to-peer warmup (sending between your own mailboxes), Cleanmails uses a coordinated cross-instance pool:
- Your mailboxes register with the central coordinator at
cleanmails.online - The coordinator assigns daily send/receive tasks — pairing your mailboxes with other instances' mailboxes
- Your instance sends warmup emails to mailboxes on other servers (and receives from them)
- Received warmup emails are auto-opened and auto-replied to after a delay
- Warmup emails landing in spam are automatically rescued and moved to inbox
- Health scores (inbox rate, spam rate, reply rate) are synced from the coordinator
Sending between your own mailboxes trains ESPs that you only talk to yourself — not a real engagement signal. Pool warmup means your mailbox receives emails from diverse domains and IPs, which is what email providers see as genuine activity.
Daily Volume Schedule
Volume increases progressively over 30 days:
| Day Range | Emails/Day | Purpose |
|---|---|---|
| Day 1-3 | 2 | Initial reputation signal |
| Day 4-7 | 5 | Establishing sending pattern |
| Day 8-14 | 10 | Growing volume steadily |
| Day 15-21 | 20 | Approaching normal volume |
| Day 22-30 | 30 | Full warmup volume |
| Day 31+ | — | Auto-graduated, ready for campaigns |
Warmup Email Headers
All warmup emails include a hidden header (X-Cleanmails-Warmup: pool-v1) that identifies them as warmup traffic. This header is invisible to users but allows the receiving instance to:
- Auto-mark as received and opened
- Schedule an auto-reply after 3–10 minutes
- Report engagement back to the coordinator
- Rescue the email from spam/junk folders if misclassified
Spam Rescue
The IMAP sync worker automatically scans spam/junk folders for warmup pool emails. When found, it moves them to the inbox — this is the most powerful signal to ESPs that these emails are wanted.
Supported spam folder names: [Gmail]/Spam, Junk, Spam, Junk E-mail, Bulk Mail
Enabling Warmup
From the dashboard:
- Go to Warmup page (sidebar)
- Click Start Warmup on any mailbox
- The mailbox will register with the pool and begin receiving tasks within minutes
Warmup requires an active license — the coordinator validates your instance ID and license key before assigning tasks.
Monitoring Warmup Progress
The warmup dashboard shows per-mailbox metrics synced from the coordinator:
- Warmup Day — Current day in the 30-day cycle
- Sent Today / Received Today — Today's warmup volume
- Inbox Rate — Percentage of warmup emails landing in inbox (not spam)
- Spam Rate — Percentage landing in spam
- Reply Rate — Percentage that received auto-replies
- Health Score — 0–100 overall reputation indicator
- Last 30 Days Chart — Daily breakdown of sent, received, opened, replied
Auto-Reply System
When a warmup email is received, the system schedules an automatic reply after a random delay (3–10 minutes). The reply content is fetched from the coordinator to ensure natural-looking thread conversations. This simulates real engagement and signals to email providers that the mailbox is active.
How It Integrates with Campaigns
While a mailbox is warming up, its effective daily send limit is reduced according to the schedule above. The campaign dispatcher respects this — if a mailbox is on day 5 of warmup, it will only send up to 5 campaign emails per day (not the full daily limit). After day 30, the mailbox graduates and uses its full configured limit.
Start warmup 2–3 weeks before you plan to launch campaigns. This gives your mailboxes time to build solid reputation. You can run warmup and campaigns simultaneously — the dispatcher automatically accounts for warmup quotas.
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/workspaces/:wid/warmup | List warmup status for all mailboxes |
| POST | /api/v1/workspaces/:wid/warmup/:id/start | Start warmup for a mailbox |
| POST | /api/v1/workspaces/:wid/warmup/:id/pause | Pause warmup |
| DELETE | /api/v1/workspaces/:wid/warmup/:id | Remove from warmup pool |