У меня есть простой и удобный API для работы с электронной почтой. Однако я хочу, чтобы «тело» сообщения было чем-то более сложным, чем просто неформатированный текст. Мой код использует данные из листов Google и выглядит следующим образом:
function doGet(e)
{
var ss = SpreadsheetApp.openById('SpreadsheetID');
var sheet = ss.getSheetByName("msg");
var rows = sheet.getDataRange().getValues();
Logger.log(e.parameter.name);
var headings = rows[0].map(String.toLowerCase);
Logger.log(headings);
var holder = [];
for(x in headings)
{
Logger.log(headings[x]);
var output = (headings[x] in e.parameters) ? e.parameter[headings[x]] : 'none';
if (headings[x] == 'id'){ output = getRandom();}
if (headings[x] == 'timestamp'){ output = new Date();}
holder.push(output);
}
Logger.log("The holder contains the following: " + holder);
Logger.log(holder.length);
sheet.appendRow(holder);
var lRow = sheet.getLastRow();
Logger.log('HEADING IS: ' + headings[1] + ' ' + lRow + ' ' + sheet.getRange(lRow, 2).getValue());
var tempMsg = GmailApp.getDraft()[0].getMessage();
MailApp.sendEmail(sheet.getRange(lRow, 2).getValue(),'mo@example.co.uk', 'Thank you for signing up!!', tempMsg.getBody());
return ContentService.createTextOutput(JSON.stringify({
'status' : 'success',
'lastRow' : lRow ,
'INFO' : holder
}))
}
С помощью приведенного выше кода я попытался написать по электронной почте и не получил письмо. Если я удаляю «var tempMsg ...» и заменяю конечное свойство MailApp.SendEmail (tempMsg.getBody ()) на любую строку - это работает.
Идея состоит в том, чтобы использовать тело черновика электронной почты в моей папке черновиков Gmail в качестве тела новой автоматической электронной почты.
Я прошел через API и попробовал разные методы, такие как GmailApp.getDraft (id).
Спасибо за вашу помощь.