Send pipeline Gmail API · Microsoft Graph · SMTP/IMAP

One queue. Three providers.
Real throttling.

Every lead drops into a single send queue. NuMail routes each message out through whichever of your mailboxes is next in line — Gmail API, Microsoft Graph, or raw SMTP — and never sends faster than a real person would. No shared IPs, no blast relays. Your mailboxes, paced like mailboxes.

Start a 14-day trial →How the engine works
90s
Default cadence / mailbox
50→500
Ramp over 30 days
3
Send providers, one queue
1M+
Emails / month / workspace
▸ The architecture

One queue routes across every provider.

Leads enroll once. The scheduler picks the next eligible mailbox per lead, respecting that mailbox's provider, throttle, daily cap, timezone and send window — then dispatches through the right transport.

Enrolled leads

Every lead in an active campaign step becomes one queued job, tagged with the campaign, the sequence position, and the eligible mailbox pool.

Per-lead send queue
Throttled scheduler
next-eligible-mailbox · 90s cadence
G

Gmail API

OAuth send via users.messages — no SMTP password, full thread headers.

M

Microsoft Graph

sendMail on the connected M365 mailbox, with native conversation IDs.

S

SMTP / IMAP

Any provider — custom domains, Zoho, Fastmail — sent SMTP, read over IMAP.

▸ What the engine does

Five controls. Per mailbox.

The pipeline isn't one global rate limit. Every mailbox carries its own provider, cadence, daily ceiling, timezone and send window — and the scheduler enforces all five before a single message leaves.

Provider routing

One queue, three transports. A campaign can pool a Gmail mailbox, a Microsoft 365 mailbox and an SMTP custom-domain box together; the scheduler dispatches each send through the correct API for whichever mailbox it lands on. Threading, Message-ID and reply detection are handled per provider, so a lead stays in one clean conversation no matter who sent it.

Gmail APIMicrosoft GraphSMTP + IMAP

Per-mailbox throttle & ramp

Each mailbox sends on its own clock — a 90-second default cadence with jitter, so two messages never leave the same box back-to-back. New mailboxes start at 50 sends/day and ramp to 500 over 30 days automatically; you can cap any box lower. There is no global firehose to misconfigure.

90s default±jitter50→500/day

Local-timezone scheduling

Every mailbox has a timezone. Daily limits reset at that mailbox's local midnight — not UTC, not your dashboard's clock — so a London box and a Denver box roll over independently. Quotas, send windows and "sent today" counters all read from the mailbox's own day boundary.

Local midnight resetPer-mailbox TZ

Bounce & suppression

Hard bounces suppress the address instantly — it's added to the workspace suppression list and never contacted again from any campaign. Soft bounces (full mailbox, greylisting, transient 4xx) are retried on a backoff before being given up on. Suppression is workspace-wide and survives re-imports.

Hard → suppressSoft → retry

Send-window controls

Set the hours and days each mailbox is allowed to send — typically business hours, Monday through Friday, in the mailbox's local timezone. Weekends are skipped by default; the queue holds anything scheduled outside the window and releases it the moment the window reopens, without bunching. Holidays and custom blackout dates are honored per mailbox, so your sending pattern reads human even at a million-a-month volume.

Business-hours defaultWeekend skipBlackout datesHolds & releases cleanly
▸ Ramp & throttle, visualized

New mailboxes earn their volume.

A fresh mailbox blasting 500 cold emails on day one is how domains get burned. NuMail ramps every new box from 50 to 500 sends/day across 30 days, then holds the ceiling.

The default is the safe default.

You don't tune any of this to be safe — safe is what ships. The 90-second cadence, the 30-day ramp, the local-midnight reset and the weekend skip are all on by default the moment a mailbox connects. Override any of them per mailbox when you have the reputation to spend.

  • Day 1 ceiling50 / day
  • Day 30 ceiling500 / day
  • Default cadence90s + jitter
  • Reset boundaryLocal midnight
  • WeekendsSkipped
Daily send ceiling · single mailbox50 → 500 over 30 days
Day 1 · 50Day 15 · ~270Day 30 · 500
▸ NuMail vs blast-senders

Throttling isn't a setting. It's the product.

Shared-IP relays optimize for throughput and let deliverability be your problem. NuMail optimizes for mailboxes that keep landing in the inbox at scale.

Shared-IP blast senders

Throughput first

  • Send from a pool of shared IPs and shared subdomains — your reputation rides on every other sender on the relay.
  • "Rate limits" are global per account, not enforced per mailbox, so one campaign can starve another.
  • One provider path. If their relay is throttled or blocklisted, every mailbox you own goes down with it.
  • Daily resets and windows run on the platform's clock, so a mailbox can dump its whole quota at 3am local.
  • Bounces are counted, not enforced — the same dead address gets retried across campaigns.
NuMail send pipeline

Your mailboxes, paced

  • Sends go out from your own Gmail, Microsoft 365 and SMTP mailboxes — your domains, your reputation, no shared IPs.
  • Real per-mailbox throttling: 90s cadence, per-box daily ceiling, independent of every other mailbox and campaign.
  • Three providers behind one queue — lose a Gmail box and the rest of the pool keeps sending uninterrupted.
  • Limits reset at each mailbox's local midnight; sends only fire inside its business-hours window, weekends skipped.
  • Hard bounces suppress instantly and workspace-wide; soft bounces retry on backoff. Dead addresses stay dead.

Send a million.
Like a human would.

Connect your Gmail, Microsoft 365 and SMTP mailboxes, set a pool, and let the pipeline pace it. Throttling, ramps and bounce handling are on by default.