Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

E-mails versturen met Apps Script via Gmail

Leer e-mails versturen met Apps Script via Gmail: met GmailApp of MailApp stuur je in een paar regels code een mail, inclusief HTML-opmaak, bijlagen en cc, en blijf je binnen de Workspace-quota.

E-mails versturen met Apps Script via Gmail is een van de meest gebruikte automatiseringen in Google Workspace. Of je nu een bevestigingsmail stuurt na een formulierinzending of een wekelijks rapport rondstuurt, met een paar regels code regel je het. In dit artikel leer je losse mails, opgemaakte HTML-mails en gepersonaliseerde bulkmails versturen, en hoe je netjes binnen de quota blijft.

Een eenvoudige mail versturen

De snelste manier om een mail te sturen is GmailApp.sendEmail(). Je geeft drie dingen mee: het ontvangeradres, het onderwerp en de platte tekst.

function stuurSimpeleMail() {
  GmailApp.sendEmail(
    'collega@cloud-captains.com',
    'Maandrapport staat klaar',
    'Hoi, het maandrapport is gegenereerd en staat in de gedeelde map.'
  );
}

Dit verstuurt direct vanaf jouw eigen Gmail-adres. De ontvanger ziet dus jouw naam als afzender. De eerste keer dat je de functie draait, vraagt Apps Script om toestemming voor de Gmail-scope. Die machtiging hoort bij het script, niet bij de ontvanger.

info

GmailApp versus MailApp

Er bestaan twee services. MailApp kan alleen mails versturen en vraagt minder rechten. GmailApp kan ook mails lezen, labels beheren en concepten maken, en vraagt dus bredere scopes. Voor puur versturen volstaat MailApp.sendEmail(). De volledige referentie staat op developers.google.com/apps-script/reference/gmail.

HTML, cc en bijlagen toevoegen

Wil je opmaak, een kopie naar iemand, of een bijlage, dan geef je een opties-object mee als vierde argument:

function stuurNetteMail() {
  const htmlBody = '<h2>Maandrapport mei</h2>' +
    '<p>Beste collega,</p>' +
    '<p>Het rapport is <b>klaar</b>. Zie de bijlage.</p>';

  const bestand = DriveApp.getFilesByName('rapport-mei.pdf').next();

  GmailApp.sendEmail(
    'team@cloud-captains.com',
    'Maandrapport mei 2026',
    'Je mailprogramma toont geen HTML. Open de bijlage voor het rapport.',
    {
      htmlBody: htmlBody,
      cc: 'manager@cloud-captains.com',
      attachments: [bestand.getAs(MimeType.PDF)],
      name: 'Rapportage Bot'
    }
  );
}

De gewone tekst (derde argument) blijft de fallback voor mailprogramma's zonder HTML. Het name-veld stelt de getoonde afzendernaam in. Andere handige opties zijn bcc, replyTo en from (alleen voor een geverifieerd alias).

lightbulb

Geef altijd een platte-tekst-fallback mee

Zet je HTML-mail altijd op met een leesbare platte-tekst-versie. Sommige clients en screenreaders tonen die platte tekst, en het verbetert de afleverbaarheid omdat spamfilters mails zonder tekstversie strenger beoordelen.

Een persoonlijke bulkmail (mailmerge)

Een veelvoorkomende wens is een gepersonaliseerde mail naar een lijst ontvangers uit een spreadsheet. Je leest de rijen en stuurt per rij een mail:

function bulkMailUitSheet() {
  const blad = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Ontvangers');
  const data = blad.getRange(2, 1, blad.getLastRow() - 1, 2).getValues();

  data.forEach(function(rij) {
    const naam = rij[0];
    const email = rij[1];
    if (!email) return;

    const body = 'Beste ' + naam + ',

Bedankt voor je inschrijving.';
    MailApp.sendEmail(email, 'Bevestiging inschrijving', body);
  });
}

De rijen worden vanaf rij 2 gelezen, zodat de kopregel wordt overgeslagen. De eerste kolom bevat de naam, de tweede het e-mailadres. Rijen zonder adres slaan we over met if (!email) return;.

warning

Houd rekening met de dagelijkse limiet

Elk account heeft een dagelijkse verzendlimiet die het aantal ontvangers telt, niet het aantal mails. Een mail naar 10 adressen telt dus als 10 ontvangers. Voor Google Workspace-accounts is dat doorgaans 1500 ontvangers per dag, voor gratis Gmail 100 per dag (cijfers per juni 2026). Overschrijd je die, dan stopt het script met een fout en kun je die dag niets meer sturen. Controleer je resterende quota met MailApp.getRemainingDailyQuota() voordat je een grote batch start.

Quota bewaken

Voordat je honderden mails verstuurt, is het verstandig de resterende quota te checken:

function checkQuota() {
  const over = MailApp.getRemainingDailyQuota();
  Logger.log('Nog ' + over + ' ontvangers vandaag mogelijk.');
  if (over < 50) {
    Logger.log('Te weinig quota, batch uitstellen.');
  }
}

getRemainingDailyQuota() geeft het aantal ontvangers terug dat je vandaag nog mag aanschrijven. Bouw deze check vooraan in je bulkscript in, zodat je niet halverwege een batch vastloopt.

Veilig een bulkmail versturen

  1. Lees de ontvangers uit je spreadsheet met getValues().
  2. Controleer de resterende quota met getRemainingDailyQuota().
  3. Sla rijen zonder geldig e-mailadres over.
  4. Stuur per ontvanger een gepersonaliseerde mail.
  5. Markeer in een extra kolom dat de mail verstuurd is, zodat je bij een herstart niet dubbel verstuurt.
Vanaf welk adres wordt de mail verstuurd?

Standaard vanaf het account waarmee het script draait. Met het from-veld kun je een geverifieerd alias kiezen dat in je Gmail-instellingen onder "Versturen als" staat.

Hoeveel mails mag ik per dag versturen?

Dat hangt van je abonnement af en wordt geteld in ontvangers, niet in losse mails. Betaalde Workspace-accounts mogen meestal 1500 ontvangers per dag, gratis Gmail 100. Check de actuele waarde met getRemainingDailyQuota().

Telt cc en bcc ook mee voor de limiet?

Ja. Elk adres in to, cc en bcc telt als een aparte ontvanger voor de dagelijkse quota.

Kan ik bijlagen meesturen?

Ja, via het attachments-veld in het opties-object. Je geeft een array van blob-objecten mee, bijvoorbeeld een PDF uit Drive die je met getAs(MimeType.PDF) ophaalt.

Hoe voorkom ik dubbele mails bij een herstart?

Markeer per rij in de spreadsheet wanneer een mail verstuurd is en sla al gemarkeerde rijen over bij een volgende run.

Wat is het verschil tussen MailApp en GmailApp?

MailApp kan alleen versturen en vraagt minder rechten. GmailApp kan ook lezen, labelen en concepten maken, maar vraagt bredere toestemming. Voor enkel versturen kies je MailApp.

Volgende stappen

Je kunt nu losse en bulkmails versturen, met opmaak en bijlagen. Combineer dit met een tijdgestuurde trigger om mails automatisch op vaste momenten te versturen, zie tijdgestuurde triggers instellen. Voor een complete rapportageflow lees je een dagelijks e-mailrapport automatiseren.