---
title: Mailboxes
description: "Connect sender accounts, providers, and how they are assigned to workers."
---

A mailbox is a sender account you connect to Warmbly. Every warmup message and campaign email goes out through one you own.

## Connecting an account

Open **Accounts** and choose **Add account**.

| Provider | Method | Notes |
|----------|--------|-------|
| Gmail / Google Workspace | OAuth (`gmail`) | Recommended. No password stored. Sends and syncs over the Gmail API |
| Outlook / Microsoft 365 | OAuth (`outlook`) | Recommended. No password stored. Runs on Microsoft Graph |
| Any other server | IMAP + SMTP (`smtp_imap`) | Custom domains, self-hosted, or providers without OAuth |

**OAuth** sends you to your provider's consent screen and returns a token instead of a password. Both OAuth providers use the provider's native API, never IMAP or SMTP, so consent asks to send mail and to read and organize your mailbox. It survives password changes and needs no app passwords or server settings.

**IMAP / SMTP** needs host, port, username, and password for each direction:

```text
SMTP   host: smtp.yourprovider.com   port: 465   username: you@yourdomain.com
IMAP   host: imap.yourprovider.com   port: 993   username: you@yourdomain.com
```

With two-factor authentication on, generate an app password in your provider's security settings and use that.

<Callout type="warn" title="Authentication runs on connect">
  Credentials and both connections are validated when you add the account, so wrong settings fail immediately rather than silently at send time. Tokens and credentials are sealed with envelope encryption before they touch storage.
</Callout>

**Limits**: `200` mailboxes per workspace by default (higher allowances come through a reviewed limit-increase request), and `5` new mailboxes per workspace per day as an abuse guardrail that resets daily. Spread large onboarding batches across days.

## Sending controls

Set these on the mailbox's **Settings** tab. They apply to the next scheduled send, not retroactively.

| Control | Default | Range |
|---------|---------|-------|
| Daily campaign cap | `50`/day | `0` to `100` |
| Minimum gap between sends | `600s` (10 minutes) | A hard floor, with jitter added on top |

The default of `50` is deliberately conservative. `30` to `50`/day is the normal safe band; a fresh mailbox should start at `10` to `20` and ramp. Raise the cap only for a mailbox with proven reputation and low complaint and bounce rates.

<Callout type="warn" title="Do not jump a new mailbox to a high cap">
  A new mailbox has no reputation. Sudden high volume from a cold inbox is one of the fastest ways to land in spam.
</Callout>

The same tab sets the **display name**, **reply-to** (empty uses the mailbox address), **signature** in plain text and HTML, **tags** for grouping, and a **custom tracking domain**. The tracking domain routes opens and clicks through your own subdomain instead of the shared host; Warmbly gives you a `CNAME` to add and verifies it on save.

## Warmup

New mailboxes should warm up before carrying campaign volume. Defaults are `10`/day starting volume, `+1`/day ramp, and a `40`/day ceiling.

Start, pause, resume, or stop from the mailbox's **Warmup** tab, or for several mailboxes at once from the Accounts selection bar. **Pausing keeps your ramp progress; stopping resets it**, so a restart begins at the base volume again.

Keep warmup running after campaigns begin rather than switching it off once a mailbox looks ready. See [Warmup](/guides/warmup/).

<Callout type="info" title="Warmup is a paid feature">
  The model still supports separate free and premium pools, but access is gated to paid workspaces today.
</Callout>

## Worker assignment

You never pick a worker. Warmbly assigns each mailbox to a sending worker automatically and can move it later. Workers are the machines that send and sync, so spreading mailboxes across them spreads sending across network identities and IPs.

| Workspace | Placement |
|-----------|-----------|
| Free / trial | Shared free-tier workers |
| Paid | Shared premium workers |
| Plans including dedicated workers | A dedicated worker bound to the workspace, allocated on demand, falling back to shared premium and retrying later |

Within a tier, Warmbly picks the least-loaded healthy worker with capacity rather than packing onto the first one. Each mailbox contributes a load weight, so a worker's planned volume tracks the sum of its mailboxes' budgets.

**Risk is segregated.** A degraded, risky, or quarantined mailbox is never placed on a clean worker beside trusted inboxes, so one struggling mailbox cannot drag down the reputation others depend on.

Mailboxes migrate automatically when a trial upgrades, a subscription ends, a workspace moves to or from a dedicated worker, or a risk band changes. No action needed.

## Health

The Accounts list groups mailboxes as **Healthy** (sending normally), **Warming** (ramping through warmup), or **Needs attention** (paused, failing, or not sending), each row showing a live state and score. A drop between refreshes notifies you rather than waiting to be noticed.

The detail drawer runs a live `SPF`, `DKIM`, and `DMARC` check on your sending domain. Confirm it is green before sending; major providers require alignment for bulk and cold mail.

Underneath, health moves through `healthy`, `watch`, `throttled`, `quarantined`, and `blocked`. These feed warmup pool selection, which only picks healthy mailboxes as partners, so an unhealthy one can be lowered in volume, removed from the pool, or blocked entirely. A blocked mailbox shows the reason and any appeal option on the Warmup tab, and must requalify on a fresh probation sample rather than waiting out the clock.

<Callout type="info" title="Health protects the pool">
  These controls act earlier than the point where providers start penalizing senders. Low complaint rate and low spam placement matter more than maximum throughput.
</Callout>

## Related guides

<Cards>
  <Card title="Deliverability" href="/guides/deliverability/" />
  <Card title="Personalization & Expressions" href="/guides/expressions/" />
</Cards>
