MailroomSign in
Free, open source, sends from your Gmail

Personal email to your
whole list, from your Gmail.

Mailroom is a free bulk Gmail sender with built-in mail merge. Upload a CSV, write one email with merge tags, and every recipient gets their own personalized copy — sent through your own Gmail account, not a third-party relay.

  • Free forever, no credit card
  • Sends from your real Gmail (better deliverability)
  • 500/day free, 2,000/day Workspace
  • Open source on GitHub
Hi {{first_name}}
delivered ✓

Built on the same Gmail your customers already trust

Gmail APIGoogle OAuth 2.0Next.js 16SupabaseVercelOpen source

From CSV to inbox in under five minutes.

The whole thing is one screen. Connect Gmail, drop a CSV, write your email. That's it.

01

Connect your Gmail

One-click Google sign-in. Mailroom uses official Gmail API access — no app passwords, no SMTP setup, no scraping. Works with any @gmail.com address or Google Workspace account.

02

Upload your CSV

Drag in any CSV with an email column. Every other column (first_name, company, deal_amount, whatever) becomes a merge tag you can drop into your email with {{ }}.

03

Write one email, send hundreds

Write your subject and body once. Use {{first_name}}, {{company}}, or any column from your CSV. Mailroom renders a personalized copy for each recipient and sends it from your Gmail.

04

Track opens, handle bounces

Built-in 1×1 open-tracking pixel, automatic bounce detection by scanning your Gmail inbox, one-click unsubscribe footer, suppression list. No CRM required.

Everything a paid bulk Gmail sender does — without the monthly fee.

Real mail merge

Use any CSV column as a merge tag — {{first_name}}, {{company}}, {{custom_anything}}. Fall back to defaults when fields are empty.

Sends from your Gmail

Authenticated through the official Gmail API. Same sender reputation, same inbox placement, no shared relay killing your deliverability.

Schedule sends

Pick a future date and time — Mailroom queues the send and dispatches via cron when the moment arrives, even if your laptop is closed.

Open tracking

Each email gets a unique 1×1 tracking pixel. See who opened, when, and how many times. Tokens are HMAC-signed so they can't be forged.

Automatic bounces

Mailroom scans your Gmail inbox for delivery-failure notifications and marks the bounced recipients automatically. No manual cleanup.

One-click unsubscribe

Every email includes a signed unsubscribe link. Recipients are added to your per-user suppression list and skipped on future sends.

Test send before launch

Send a test copy to yourself first — see exactly how the merge tags render before you blast 500 strangers.

Templates

Save your best emails as reusable templates. Spin up a new project from a template in two clicks.

Daily-cap aware

Gmail caps sends at 500/day free and 2,000/day Workspace. Mailroom enforces the cap so you never get rate-limited mid-campaign.

Markdown formatting

Write **bold**, *italic*, [links](https://) — Mailroom renders both an HTML and plaintext version so every email client looks right.

Open source

Every line of code is on GitHub. Self-host it on Vercel for free in 10 minutes if you don't want to use the hosted version.

No vendor lock-in

Your data lives in your own Supabase. Your sending reputation stays with your own Gmail. Cancel anytime — there's nothing to cancel.

How Mailroom compares to GMass, YAMM, and Mailmeteor.

The market for Gmail mail-merge tools is crowded. Here's the honest comparison.

MailroomGMassYAMMMailmeteor
Free tier500/day foreverLimited trial75/day trial1,500/month
Sends from your GmailYesYesYesYes
Mail merge tagsYesYesYesYes
Open trackingYesYesPaid onlyYes
Schedule sendsYesPaid onlyPaid onlyYes
Bounce detectionAutoAutoManualAuto
Open sourceYes (MIT)NoNoNo
Self-hostYesNoNoNo
Monthly cost$0$25+/mo$24+/mo$10+/mo

What are Gmail's actual sending limits?

A common reason people give up on mail merge — they hit invisible Gmail limits and get rate-limited. Mailroom knows the rules and stays inside them.

500
per day · free Gmail

Personal @gmail.com accounts can send up to 500 recipients per 24-hour rolling window via the Gmail API.

2,000
per day · Workspace

Google Workspace accounts get 2,000 recipients per 24-hour rolling window. Mailroom detects which tier you're on automatically.

~250/hr
soft hourly cap

Gmail also enforces a soft per-hour cap. Mailroom paces sends with a small delay between messages to stay under it.

Frequently asked questions

Is Mailroom really free?
Yes — fully free, with no trial expiry and no credit card. There's no premium tier to upsell. Mailroom is open source and self-hostable on Vercel's free plan. The hosted version at bulk-gmail.vercel.app runs on personal infrastructure paid for out of pocket.
How is this different from GMass, YAMM, or Mailmeteor?
GMass, YAMM, and Mailmeteor are paid Chrome extensions that sit inside Gmail's web UI. Mailroom is a standalone web app that talks to Gmail via the official API. The result is the same — personalized emails sent from your address — but Mailroom is free, open source, sends without touching Gmail's UI, and includes scheduling and bounce detection in the free tier.
Will my emails land in spam?
Mailroom sends through the same Gmail API that the Gmail web app uses, so your messages get exactly the same sender reputation and inbox placement as a one-off email you'd type by hand. There's no shared relay, no third-party SMTP, no IP that other senders have burned. Your reputation is your own.
Can I send 1,000 emails from a free Gmail account?
Not in one go — Google caps personal @gmail.com accounts at 500 unique recipients per 24-hour rolling window. Mailroom enforces this and tells you the remaining quota before you send. For 1,000+ daily sends, you need Google Workspace (cap is 2,000/day) or you can split the list across two days.
Does Mailroom store my email content?
Subject lines and bodies are stored in your Supabase project so you can edit, resume scheduled sends, and view history. They're encrypted at rest and never shared with anyone. Your Gmail refresh token is stored encrypted so Mailroom can send on your behalf — you can revoke it at any time from myaccount.google.com/permissions.
Is bulk emailing from Gmail allowed by Google?
Yes — as long as you stay under the daily sending limits and your recipients have a legitimate reason to hear from you (existing customers, opt-in subscribers, business contacts). Sending cold spam to scraped lists violates Gmail's ToS regardless of which tool you use. Mailroom includes an unsubscribe footer and suppression list specifically to keep your sends compliant.
What kind of merge tags can I use?
Any column in your CSV becomes a merge tag. Drop {{first_name}}, {{company}}, {{custom_field}} anywhere in your subject or body. Empty cells render as an empty string by default. Tags are case-sensitive and use double curly braces.
Can I schedule sends for later?
Yes. Pick any future date and time, and Mailroom queues the project. A cron job runs every five minutes and dispatches scheduled sends when their time arrives, even if you're offline.
How do bounces work?
Every fifteen minutes, Mailroom scans your Gmail inbox for delivery-failure notifications (mailer-daemon, postmaster, undelivered mail) using the Gmail metadata API — no message bodies are downloaded. Matched bounced addresses are flagged on your project automatically.
Where is the code?
github.com/aneeka-code/bulk-gmail. MIT license. Pull requests welcome.

Stop paying $25 a month to email your own contacts.

Connect Gmail, drop a CSV, hit send. The whole thing is free.

Get started with Google