Gmail Sending Limits for Mail Merge: 500, 100 or 1,500?
On this page, 12 sections
Gmail stops you at 500 emails a day, or 500 recipients in a single email, whichever you hit first. That is what Google’s own help page says. But if you send from a Google Sheet using Apps Script’s MailApp, a different number applies: 100 recipients a day on a personal Gmail account, which is lower than Gmail’s 500, and 1,500 a day on Google Workspace.
So the answer to “what is Gmail’s sending limit” depends on how you send. Hitting Send in the Gmail window, and running a mail merge script that calls MailApp, are governed by different published numbers. I read both Google pages on 11 October 2026 and the table below puts them side by side.
This matters if you use the mass email with Gmail and Sheets method on this site. A list of 300 people fits inside Gmail’s 500 but not inside the 100 a day that a consumer account gets through Apps Script’s mail service.
The limits, from Google
- Gmail help, sending limits: 500 recipients in a single email, or 500 emails in a day. Exceed either and you see “You have reached a limit for sending mail.”
- Apps Script quotas,
MailApprecipients per day: 100 on a consumer account, 1,500 on Google Workspace. The page marks these with an asterisk, and the footnote text did not come through when I fetched it. - Apps Script, runtime: 6 minutes per execution. Total trigger runtime per day is 90 minutes on a consumer account and 6 hours on Workspace.
The Apps Script page was last updated on 3 September 2026. The Gmail help page shows no update date, so I cannot tell you how recent its numbers are.
Two things the Gmail page does not do. It does not list separate figures for personal and Workspace accounts, and it says Workspace users should look at separate guidance. And it does not give a limit on how many emails you can receive per day. It says only that one exists.
How long a lockout lasts
The help page says that after the limit error you should be able to send again within 1 to 24 hours. It gives no way to find the exact reset time, and it does not describe a rolling or a midnight reset.
If many of your emails bounce because of invalid addresses or because the recipient’s server rejects them, the page says you may be able to send again after about 24 hours. A stale list costs you more than the bounced emails. It costs you the day.
Why the numbers differ
I can describe the difference, not explain it. The Gmail page covers sending from Gmail. The Apps Script page covers Google’s services called from a script. Those are different systems with different published ceilings. Google does not say on either page why the numbers differ.
What I can say from the two pages is what to do about it. Before you build a merge, check which service your script uses.
- Open the script from Extensions, Apps Script.
- Search for
MailAppandGmailApp. - If it is
MailApp, use the 100 and 1,500 figures. - If it is
GmailApp, note that the quotas page has no separateGmailApprow. Its email rows are worded “for example, with MailApp”, and Google does not say in so many words thatGmailAppsends count against them. Test it: callMailApp.getRemainingDailyQuota()before and after oneGmailAppsend and see whether the number drops. I have not run that test.
How to stay under the limit
Count before you send
Put a counter on your sheet. A column marking each row sent as the script goes, plus a total at the top, tells you at a glance how many are left. A script that dies on row 101 should resume at row 101 tomorrow, not row 1.
function sendBatch() {
const DAILY_CAP = 90; // 90% of the 100 consumer MailApp recipients per day
const sheet = SpreadsheetApp.getActiveSheet();
const rows = sheet.getDataRange().getValues();
let sent = 0;
for (let i = 1; i < rows.length && sent < DAILY_CAP; i++) {
if (rows[i][2] === 'sent') continue;
MailApp.sendEmail(rows[i][0], 'Subject here', 'Body here');
sheet.getRange(i + 1, 3).setValue('sent');
sent++;
}
}
Set DAILY_CAP below the quota, not equal to it. Other scripts on the same account share the same allowance, and so does anything you send by hand through MailApp.
Spread it across days with a trigger
Add a time-driven trigger that runs sendBatch once a day. A 1,000-row list at the script’s cap of 90 a day finishes in 12 days with no further input. On Workspace at 1,500 a day, the same list fits inside a single run, though the 6 minute execution limit may stop you first, since each send is a service call.
Do not use BCC as a workaround
Gmail allows 500 recipients in one email, but the Apps Script quotas page lists “Email recipients per message” at 50 per message, on consumer and Workspace accounts alike.
So BCC does not get you around the daily cap from a script, and 500 addresses in one BCC would be refused at 50. It also sends everyone the same email, which is not a mail merge. A BCC list still counts every recipient toward the daily total.
What I could not verify
- Whether the 500 per day on the Gmail page is a rolling 24 hours or a calendar day.
- Whether personal and Workspace accounts have different limits in the Gmail window, because the page does not say.
- Whether Gmail’s 500 per day on the help page is the same counter that a
GmailAppsend uses. The pages do not connect them.
Plan a send around the limit
Treat the limit as a budget. Decide the size of the list first, then the days it needs, then the schedule.
- Under 90 recipients: one run, a personal account is enough.
- 100 to 500: on a personal account,
MailAppforces you to split across days. If you send by hand from the Gmail window, 500 is the number Google gives. - 500 to 1,500: the Workspace
MailAppallowance of 1,500 covers it in a day. - Beyond 1,500 a day: past the
MailAppand mail merge caps, Workspace’s own page allows up to 2,000 messages a day from Gmail itself, and beyond that the published limits are the wall. A dedicated sending service is built for volume, though I have not compared them for this post.
Keep the sender’s reputation in mind too. The help page warns that many bounces can lock sending for about 24 hours, so clean the list before the first run. Remove obviously mistyped addresses and rows you have no reason to email.
For deeper background on the other Google limits that affect sheet scripts, see the YouTube Data API quota guide, which uses the same Apps Script execution limits.
A worked quota plan
Here is the arithmetic for common list sizes. The days are my calculation from the two Apps Script MailApp limits, rounded up. “Safe cap” means I set the script to 90% of the quota, so a few hand-sent or second-script emails do not push a run over the line.
| List size | Personal, 100 cap | Personal, safe cap of 90 | Workspace, 1,500 cap | Workspace, safe cap of 1,350 |
|---|---|---|---|---|
| 250 | 3 days | 3 days | 1 day | 1 day |
| 500 | 5 days | 6 days | 1 day | 1 day |
| 1,000 | 10 days | 12 days | 1 day | 1 day |
| 3,000 | 30 days | 34 days | 2 days | 3 days |
| 10,000 | 100 days | 112 days | 7 days | 8 days |
Two things stand out. On a personal account, a 1,000-person list is a 10 to 12 day project, which makes it a project rather than a send. And a 10,000-person list is not a mail merge job on either account. It is a sending-service job.
Count recipients, not messages. Google’s Apps Script page counts “email recipients per day”, so one email with 3 addresses in To and Cc uses 3 of your 100.
What Google Workspace itself allows
The Gmail help page sends Workspace users to a separate page. I read it on 11 October 2026 (last updated 9 October 2026). It lists limits for sending from Gmail itself, not from Apps Script, and they are higher.
- Messages per day, per user: 2,000, or 1,500 for mail merge (Google notes this was previously called multi-send), or 500 for trial accounts.
- Total recipients per day: 10,000, or 1,500 for mail merge.
- External recipients per day: 3,000.
- Recipients per message: 2,000 in total, of which at most 500 can be external.
The 1,500 figure for Gmail’s own mail merge matches the 1,500 for MailApp on Workspace, so 1,500 is the ceiling for both of those routes. For plain sends from Gmail, the same page lists 2,000 messages and 10,000 recipients a day. The Workspace page also says that after reaching a limit, users cannot send new messages for up to 24 hours.
When Google’s sender rules apply too
Separate from volume caps, Google publishes email sender guidelines. I read the Gmail Help version on 11 October 2026. It says that from 1 February 2024 every sender to Gmail accounts must set up SPF or DKIM, keep the spam rate reported in Postmaster Tools below 0.3%, and use a TLS connection.
Senders of more than 5,000 messages a day to Gmail accounts also need SPF, DKIM and DMARC, and their marketing and subscribed messages must support one-click unsubscribe with a visible unsubscribe link.
A script capped at 1,500 recipients a day sits below that 5,000 threshold, but the all-sender rules still apply to you.
If your mail merge goes from a custom domain, check that its SPF or DKIM record exists before the first run, and keep the list to people who expect your email. Google’s guidelines say those records are published at your domain, so they live in your DNS, not in the script.
Questions people ask
How many emails can I send per day with Gmail?
500 emails a day or 500 recipients in a single email, per Google’s help page. Through an Apps Script MailApp, 100 recipients a day on a personal account, 1,500 on Workspace.
What happens if I exceed the limit?
Gmail shows “You have reached a limit for sending mail” and you should be able to send again within 1 to 24 hours, per the help page.
Does the limit reset at midnight?
The Gmail help page does not say. The Apps Script quotas page does: quotas reset 24 hours after the first request, not at midnight. So if your first send of the day is at 09:00, the allowance comes back at 09:00 the next day. That is my reading of Google’s sentence, and I have not tested the edge.
Do this today
Open your mail merge script and find out whether it calls MailApp or GmailApp. Then set a daily cap in the code that is lower than the number for your account type.
Resources
- Gmail Help: Gmail sending limits, read 11 October 2026
- Apps Script quotas for Google services, read 11 October 2026
- Gmail sending limits in Google Workspace, read 11 October 2026
- Email sender guidelines (Gmail Help), read 11 October 2026