One Gmail draft, one spreadsheet, a personalised message for every row. Mail leaves from your own address, so replies come back to you and copies land in your Sent folder — and results are written back into the sheet as it runs.
Free for 50 emails a day. No card required.
Columns C–H are written by the add-on as the campaign runs. The sheet stays usable while it sends.
The middle path
The manual way
Then do it again, four hundred times. It works, it is nobody’s afternoon well spent, and by row 200 two people are called by the wrong name.
The bulk-platform way
Upload your contacts to a platform you have no relationship with, then send from a domain that isn’t yours. Fine for newsletters to thousands. Heavy machinery for a note to a class of forty.
Mailer123
The list stays in the sheet. The template stays in Gmail drafts. The sending is done by your own Google account, at your own address, inside the limits Google already gives you.
Intended use is mail that people asked for: parents on your register, customers who ordered, candidates who applied, guests who replied. Bought and scraped lists are against the terms of service, and the unsubscribe footer on every message is there because you are writing to people who can say no.
Four steps
Your normal signature, your normal formatting. Where a name should go, type a merge tag: {{First Name}}. Give it a fallback — {{First Name|there}}— and blank rows read “Hi there”.
One header row, one column of addresses, and any other columns you want to merge from. The add-on guesses which column holds the email addresses and shows you its guess so you can correct it before anything sends.
Pick the draft, confirm the column, and send — or set a start time and leave it. The form closes, a sidebar takes over with the progress and your remaining quota, and the sheet stays usable while it runs.
Status lands row by row as each message goes out, and the tracking columns fill in afterwards as people open the mail and follow links. Nothing to refresh: it is your spreadsheet, updating in front of you.
Written back into your sheet
Opens, Clicks and Bounced are flags, not counts. An open is an image being fetched, so three of them may be one person on three devices — the exact figures and timestamps live in the cell note, where a number that cannot bear that weight is not presented as if it can.
Ships today
One message to yourself, through the same draft, merge and MIME path as the real send.
An hourly background trigger picks the campaign up and carries on without you.
The sheet is the queue. Close the tab, come back tomorrow, it continues where it stopped.
Reads the delivery-status reports that land in your inbox and matches them back to rows.
Footer link and one-click List-Unsubscribe, with an account-wide do-not-send list.
Repeat addresses are skipped, and each campaign shows a merge-tag preview before it sends.
Campaign history that outlives the sheet, CSV export, and billing in one place.
Eight, in full
Eight permissions, requested when you start your first campaign. This is all of them — nothing is requested that isn’t listed here, and each one exists for a feature you can point at. Google sorts them into three tiers; the tier is on every group, along with the real scope string and Google’s own consent-screen wording, so this page and that screen cannot disagree.
The only permission here that Google classes as restricted, which is the class that carries an independent annual security assessment. It exists for the two features that cannot work without reading mail: your template is a draft you write in Gmail, and the only evidence that an address bounced is the report that lands in your own inbox.
https://www.googleapis.com/auth/gmail.readonlyGoogle’s wording: “View your email messages and settings”
The add-on sends from your own mailbox rather than a relay of ours. Messages carry your address, your signature and your sending reputation; replies come back to you; copies land in your Sent folder. The other three let it draw an interface, run on a schedule, and reach its own dashboard; none of those read message or file content.
https://www.googleapis.com/auth/gmail.sendGoogle’s wording: “Send email on your behalf”
https://www.googleapis.com/auth/script.scriptappGoogle’s wording: “Allow this application to run when you are not present”
https://www.googleapis.com/auth/script.container.uiGoogle’s wording: “Display and run third-party web content in prompts and sidebars inside Google applications”
https://www.googleapis.com/auth/script.external_requestGoogle’s wording: “Connect to an external service”
No access to message content, and no access to your Google Drive at all.
https://www.googleapis.com/auth/spreadsheets.currentonlyGoogle’s wording: “View and manage spreadsheets that this application has been installed in”
https://www.googleapis.com/auth/userinfo.emailGoogle’s wording: “See your primary Google Account email address”
openidGoogle’s wording: “Associate you with your personal info on Google”
Access can be withdrawn at any time at myaccount.google.com/permissions; revoking stops every send immediately. Retention and deletion are set out in the privacy policy.
Data
Tracking is keyed to a row number, not a person. We can say that row 42 was opened twice, and we can never say who row 42 is — which is also why we cannot answer “who did I send this to” on your behalf. That answer lives in your sheet.
Limited Use disclosure
This app’s use and transfer of information received from Google APIs to any other app will adhere to Google API Services User Data Policy, including the Limited Use requirements.
Plans
One price a month, cancel any time. Every plan sends from your own Gmail account — there is no separate sending domain to warm up and no per-message fee.
$0
50 emails a day
$3.00 /month
450 emails a day
$5.00 /month
2,000 emails a day, on Google Workspace accounts
No plan raises those limits. Whichever is lower — your plan or Google’s cap — is what applies. Each account type is offered one paid tier: a personal Gmail address upgrades to Personal, a Google Workspace account upgrades to Professional.
Compare plansHelp
Free for 50 emails a day, no card required. Install it and send in the next five minutes.