Senders & Domains

Sender Rotation

Cleanmails automatically rotates between your mailbox accounts when sending campaign emails. This distributes volume, protects reputation, and avoids triggering provider rate limits.

How Rotation Works

When the dispatcher needs to send an email, it selects a mailbox using this algorithm:

  1. Filter assigned mailboxes — Only mailboxes assigned to this campaign are considered
  2. Filter active — Skip any mailbox with is_active = false
  3. Check daily limit — Skip mailboxes that have reached their effective daily limit
  4. Round-robin selection — Pick the mailbox with the lowest sent_today count

This ensures even distribution across all mailboxes and automatically shifts load away from maxed-out accounts.

Effective Daily Limit

The effective limit depends on whether warmup is active:

Warmup StatusEffective Limit
Warmup disabledFull configured daily limit
Warmup day 1–35 emails/day
Warmup day 4–715 emails/day
Warmup day 8–1430 emails/day
Warmup day 15+Full configured daily limit

The sent_today counter resets at midnight via a periodic background task.

Human-Mimicry Delay

Between each email sent, the dispatcher adds a random delay of 30–90 seconds. This simulates human sending patterns and avoids triggering rate limits at the receiving end.

Batch size

Each dispatcher cycle processes up to 50 leads (using FOR UPDATE SKIP LOCKED to prevent duplicate sends). With 30–90 second delays, a full batch takes ~25–75 minutes.

Best Practices

  • Use 3–10 mailboxes per campaign — More mailboxes means lower per-sender volume and better distribution
  • Mix domains — Use mailboxes across multiple sending domains for diversity
  • Set conservative daily limits — 30–50/day for warmup phase, 100–200/day for established mailboxes
  • Monitor in the dashboard — The mailbox health endpoint shows sent_today vs. limit for each account

What Happens When All Mailboxes Are Full

If every assigned mailbox has hit its daily limit, the dispatcher skips that lead for the current cycle. The lead stays in queue and will be sent to in the next cycle (or the next day when limits reset).

Blocklist Check

Before sending, the dispatcher checks the workspace blocklist for both the lead's email and domain. Blocklisted leads are permanently removed from the campaign queue.

Bounce protection

Hard bounces automatically blocklist the email and increment the campaign's bounce counter. If bounce rate exceeds 5% (after 100+ sends), the campaign is auto-paused.