С Google Appscript - Как отправить автоматическое электронное письмо с использованием собственного тела из черновика шаблона, расположенного в Gmail? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть простой и удобный 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).

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 13 апреля 2019

Я добился определенного прогресса.Мне удалось узнать, как добавить стили html / css в тело моего письма, и это работает.Это не дает точного ответа на вопрос, но результат - то, что я хотел.

var htmlmsg = "<h1 style='text-align: center;'>This is the heading</h1><br/><p>Body Text</p>"; MailApp.sendEmail(sheet.getRange(lRow, 2).getValue(), 'Thank you for signing up!!', htmlmsg, {htmlBody:htmlmsg});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...