I\'m trying to pass a variable (my name in cell A1) from my code.gs to my Index.html and email it.
Can someone please tell me what I\'m doing wrong or point me in th
The question was still open when I found it and I had a similar problem, so here is my solution (without doGet()), based on the useful comments from Wim den Herder and Rubén (and the example in the documentation):
Code.gs
function sendEmail() {
var recipient = 'test@mail.de';
var subject = 'Test Email';
var message = HtmlService.createTemplateFromFile('Index').evaluate().getContent();;
// SEND THE EMAIL
GmailApp.sendEmail(
recipient,
subject,
message, { // body
htmlBody: message // advanced options
});
}
function getData(){
var ss = SpreadsheetApp.openById('MySpreadSheetId');
var sheet = ss.getSheetByName('Sheet1');
// Data is in cell A1
var myName = sheet.getRange(1,1).getValue();
return myName
}
Index.html
<!DOCTYPE html>
<html>
<body>
<p><strong><? var data = getData() ?><?= data ?></strong></p>
</body>
</html>
Read this, pushing variables to templates
function doGet() {
return HtmlService.createHtmlOutputFromFile('Index');
}
function sendEmail() {
var ss = SpreadsheetApp.openById('MY_SPREADSHEET_ID');
var sheet = ss.getSheetByName('Sheet1');
var myName = sheet.getRange(1,1).getValue();
var template = HtmlService.createTemplateFromFile('Index');
template.data = myName;
var body = template.evaluate().getContent();
// SEND THE EMAIL
MailApp.sendEmail({
subject:"Test Email",
to:"example@domain.com",
htmlBody: body,
});
Index.html
<!DOCTYPE html>
<html>
<body>
<p><strong><?= data ?></strong></p>
</body>
</html>