How to Send Bulk Emails Using Google Sheets and Apps Script Free (With Custom Message for Each Recipient)

RAUSHAN KUMARRAUSHAN KUMAR
3 min read

Introduction

Need to send personalized emails to multiple people — but don't want to spend hours doing it manually or pay for tools like Mailchimp?

Here’s the good news: you can send bulk emails directly from Google Sheets using Google Apps Script, completely free.

Whether you're a freelancer sending proposals, a recruiter emailing candidates, or a teacher sharing updates, this method will save you hours every week.

Let me show you how — step by step.


What You'll Learn

  • How to structure your Google Sheet for email sending

  • How to write a script that sends emails row by row

  • How to include custom names, links, or details in each message

  • How to trigger it with one click


📋 Step 1: Prepare Your Google Sheet

Create a Google Sheet with these columns:

NameEmailMessageStatus
Johnjohn@example.comYour report is ready.(Leave blank)
Anjalianjali@example.comPlease find your link.(Leave blank)

You can add more fields like “Attachment”, “Company”, “Meeting Link”, etc., depending on your needs.


✍️ Step 2: Open Apps Script Editor

In your Google Sheet:

  • Click Extensions > Apps Script

  • Delete any existing code

  • Paste the following script:

javascriptCopyEditfunction sendBulkEmails() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {
    const name = data[i][0];
    const email = data[i][1];
    const message = data[i][2];
    const status = data[i][3];

    if (status !== 'Sent') {
      const subject = `Hello ${name}, here's your update`;

      MailApp.sendEmail({
        to: email,
        subject: subject,
        htmlBody: `<p>Hi ${name},</p><p>${message}</p><p>Regards,<br>Your Name</p>`
      });

      // Mark as Sent
      sheet.getRange(i + 1, 4).setValue('Sent');
    }
  }
}

⚙️ Step 3: Run the Script

  • Click the disk icon to save

  • Select the sendBulkEmails function from the dropdown

  • Click the ▶️ Run button

⚠️ The first time you run it, Google will ask for permission. Click “Review Permissions” → choose your account → “Allow”.


🛠️ Optional: Add a Button to Run It Easily

  1. Go back to the Sheet

  2. Insert → Drawing → Create a button saying “Send Emails”

  3. Click on the drawing > three dots > Assign script → enter sendBulkEmails

Now you can send emails by just clicking a button!


🔐 Google Quotas to Keep in Mind

Google limits the number of emails you can send via Apps Script:

Account TypeDaily Limit
Free Gmail100/day
Google Workspace1500/day

So for big lists, split across days or upgrade to Google Workspace.


✅ Final Output

Each person receives a customized email with their name and message. The Sheet marks each row as "Sent", so you don’t resend by mistake.


💡 Real-World Use Cases

  • Freelancers sending proposals to leads

  • Event organizers sending invites

  • Job hunters reaching out to companies

  • Schools sending notices to students

  • Customer support follow-ups

👋 Final Thoughts

You don’t need expensive email tools for simple jobs.
With just Google Sheets and a few lines of code, you can send bulk personalized emails and automate your workflow like a pro.

0
Subscribe to my newsletter

Read articles from RAUSHAN KUMAR directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

RAUSHAN KUMAR
RAUSHAN KUMAR

Hi, I’m Raushan — a developer who helps businesses automate workflows, scrape data legally, and build tools using Python, Bash, and Chrome Extensions. I specialize in building lightweight automations that save hours of repetitive work and turn complex ideas into simple command-line tools.