Connect mailboxes by importing a CSV
Add one or many sending mailboxes at once by uploading a CSV of email addresses and IMAP/SMTP credentials; every row is verified automatically in the background.
Where: Left nav → Infrastructure → Mailboxes → "Import CSV" (top right), or "Connect Mailbox" → "Bulk Import" → "Import Mailboxes" dialog → "Choose a CSV"
How to do it
- Open Mailboxes from the left nav (under Infrastructure) and click "Import CSV" — or open "Connect Mailbox" and choose "Bulk Import". With no mailboxes yet, the empty page has an "Import CSV" button too.
- In the "Import Mailboxes" dialog click "Choose a CSV" (or drop the file on the dialog) and pick your file. A Smartlead mailbox export works as-is; otherwise use the Email, SMTP Username, SMTP Password… format (see the CSV columns article). For Gmail / Google Workspace you can upload just two columns: email and app_password.
- The progress bar and the "N of M checked" counter update every couple of seconds; when every row has a result it reads "N verified · N need attention".
- You can close the dialog at any time — "Verification runs in the background — it's safe to close this window; mailboxes keep turning active on their own." When it finishes the button reads "Done — N added".
- Fix anything marked Failed (usually the password) and re-upload; a re-imported address is updated in place, not duplicated.
Good to know
- One mailbox = one row. To add a single mailbox "by hand", upload a one-row CSV; there is no separate manual form in the app. The connection tester (Connect Mailbox → Any IMAP / SMTP, or the link in the dialog) only tests credentials — it never saves them.
- Required columns: email plus password, and — unless it's the Gmail shorthand — smtp_host and smtp_port. Rows missing them are skipped and the dialog reports "N rows were skipped (invalid or missing data)".
- Gmail shorthand: when the file has no smtp_host column the row is set up on smtp.gmail.com port 587 and imap.gmail.com port 993 automatically. Google app passwords pasted with spaces ("abcd efgh ijkl mnop") have the spaces removed for you.
- Re-importing an address that already exists updates its settings and credentials and resets it to Unverified so the new credentials are re-checked — except a paused mailbox, which stays Paused (the new credentials are still checked; only Resume sends from it again). Duplicate addresses inside one file are rejected after the first occurrence.
- Credentials are encrypted at rest and never shown again in the app.
- File size limit is 5 MB.
- Default values when a column is absent: daily limit 30, warmup off, warmup per day 0, reply rate 0. The Settings → Sending defaults "Daily cap per sender" value is not applied to CSV imports — set the limit in the file or edit it afterwards.
- Verification runs one login at a time per sending IP, 3 seconds apart, so a large import takes a while; the dialog keeps polling for about 5 minutes but the checks continue server-side regardless.
- Imported mailboxes are automatically spread across MailFleet's pool of sending IPs before verification.
Questions people ask
Can I connect a mailbox with Google or Microsoft sign-in instead of a password?
Yes, when your account offers it: open Connect Mailbox and choose Google Workspace or Microsoft 365 (they're listed only when sign-in is available to you). Sign in with the account you want, approve, and you're brought back to Mailboxes — no app password needed. The mailbox is verified automatically in the background and shows Active once sending and reading both work. Repeat for each mailbox.
My import says "Needs attention … retrying automatically" — do I have to do anything?
Not yet. That state means the first check hit a temporary problem (a timeout or a provider throttle). MailFleet keeps retrying on its own and the row turns Verified when it passes. Only "Failed" with a credential message needs you to fix the password.