Google Workspace
Mailmerge

Een Google Apps script waarmee je gepersonaliseerde HTML vormgegevens mailtjes kan versturen met een Google Sheet als bron bestand.

Hiervoor gebruiken we een Google Sheet waarin we gegevens zetten. De Google Apps Script leest per row gegevens uit de Google Sheet en vult dan een html template met deze gegevens. Het resultaat wordt dan als body van een mailbericht verstuurd, naar het email adres zoals die in de Google Sheet row staat.

Google Sheet als Bron Bestand

Google Apps Script

Code.gs

/**

* Mail script

* Door: Jeff Schilders (jeff@schilders.com)

*

* Verstuur gepersonaliseerde mail berichtjes naar verschillende e-mail accounts.

*

* In de Google Sheet staat de kolommen voornaam,achternaam,email,code

* template.html is het mail bericht in HTML formaat.

*

* This program is free software: you can redistribute it and/or modify

* it under the terms of the GNU General Public License as published by

* the Free Software Foundation, either version 3 of the License, or

* any later version.

*

* This program is distributed in the hope that it will be useful,

* but WITHOUT ANY WARRANTY; without even the implied warranty of

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

* GNU General Public License for more details.

*

* You should have received a copy of the GNU General Public License

* along with this program. If not, see <https://www.gnu.org/licenses/>.

*

*/

var mailSubject= "Leerlingen tevredenheidsonderzoek";

var sheetID = "1h-MIpD6BLdURGQj4oe_zd8hD0vmrz_dQgjhHcWNIqtA";


function start(){

var timeZone = Session.getScriptTimeZone();

var td=Utilities.formatDate(new Date(), timeZone, "ddMMyyyyHHmmss");

var ss = SpreadsheetApp.openById(sheetID);

var data = ss.getDataRange().getValues();

for (var i = 1; i < data.length; i++) {

var kandidaat =

{

naam:data[i][0],

email:data[i][1],

link:data[i][2]

}

Logger.log("No: "+ i)

sendmail(kandidaat);

}

Logger.log("End Script")

}


function sendmail(kandidaat) {

var templ = HtmlService.createTemplateFromFile('template');

templ.kandidaat = kandidaat;

var message = templ.evaluate().getContent();

MailApp.sendEmail({

to: kandidaat.email,

subject: mailSubject,

htmlBody: message

});

Logger.log('Send to:'+kandidaat.email);

}

template.html

<!DOCTYPE html>

<html>

<head>

<base target="_top">

</head>

<body>

<p>

Beste <?=kandidaat.naam ?>

</p>

<p>

We zijn benieuwd hoe tevreden je bent met onze school.
We vinden het heel fijn als je daarom een korte vragenlijst invult.
<br/></br>

Klik op de onderstaande link om de vragenlijst in te vullen.

</p>

<a href="<?= kandidaat.link ?>"><?= kandidaat.link ?></a>

<p>Alvast bedankt!</p>

<p>Met vriendelijke groet,</p>

<p>Jeff Schilders/br>

</body>

</html>