Есть ли в Google Scripts функциональность для создания полноформатных HTML текстовых электронных писем с помощью Google Sheets и Google Docs? - PullRequest
1 голос
/ 05 марта 2020

Извинения, если на этот вопрос уже был дан ответ - я новичок в этом и, возможно, нуждаюсь в некотором руководстве; если это неправильный форум для этого, я бы с радостью принял несколько советов:)

Я нахожусь в процессе поиска решений для полуавтоматического сценария составления электронных писем с использованием Google Sheet в качестве исходных данных. Я использовал скрипт, который нашел в inte rnet (вероятно, ужасная идея, но опять же я только начинаю) здесь .

Исходный документ представлен в формате HTML, но итоговый черновик Gmail - в виде обычного текста. Есть ли способ гарантировать, что он генерирует в богатых HTML?

Спасибо - Ху go

1 Ответ

1 голос
/ 05 марта 2020

РЕДАКТИРОВАТЬ ОБНОВЛЕННЫЙ ОТВЕТ:

Я посмотрел на ваш сценарий более внимательно. Он использует другую функцию под названием createDraft(). На самом деле это не отправка писем, а создание черновиков, которые вы можете отправить позже. Нет проблем. Вот документация для createDraft . createDraft также может использовать «htmlBody» в качестве параметра замены для тела сообщения. Вот что мы сделаем ...

В коде вашего скрипта измените это:

// Create the email draft
      GmailApp.createDraft(
        config[emailField],   // Recipient
        emailSubjectUpdated,  // Subject
        emailBody             // Body
      );

на следующее:

// Create the email draft
      GmailApp.createDraft({
        to: config[emailField],   // Recipient
        subject: emailSubjectUpdated,  // Subject
        htmlBody : emailBody  // Body
      });

Пока ваш "emailBody" "переменное содержимое находится в html, черновик вашей электронной почты должен быть сохранен как html инструмент.

Но есть минус. Преобразовать документ Google в чистый файл HTML нетривиально без дополнительных внешних библиотек. Одним из решений является просто для go Документа Google, и создать настоящий html файл внутри вашего скрипта, и использовать его в качестве переменной emailBody. ПРИМЕР ЗДЕСЬ реализация этого решения.

ОРИГИНАЛЬНЫЙ ОТВЕТ:

Сценарий, на который вы ссылались, не включал функцию фактической отправки почты. Я написал сценарий go (для электронной таблицы), который автоматически создает электронную почту на основе строк электронной таблицы, и электронная почта состоит из "rich" html.

Вот отправка почты function:

function sendEmail(to,sub,mes) {
  var t = "";
  var s = "";
  var m = "";
  sub == null || sub == undefined || sub == "" ? s = "Subject Failed" : s = sub;
  mes == null || mes == undefined || mes == "" ? m = "Message Failed!" : m = mes;
  to == null || to == undefined || to == "" ? t = "defaultemail@gmail.com" : t = to;
  MailApp.sendEmail({to: t, subject: s, htmlBody: m});
}

В этой функции я передаю несколько переменных (получатель "to", тема "sub" и тело сообщения "mes") и проверяю, что функция все еще работает даже если какая-либо из переменных по какой-то причине пуста. "Mes" - это мое тело сообщения, и это строка, написанная в html. Это все, как я пишу письмо. Вы можете значительно упростить это, если хотите (ниже я приведу упрощенную версию).

Важная часть - это последняя строка MailApp.sendEmail({to:t,subject:s,htmlBody: m}); ОПРЕДЕЛИТЬ ВНИМАНИЕ в часть " htmlBody ". Если функция sendEmail не имеет «htmlBody» в качестве имени свойства для вашего тела сообщения, она просто отправит его в виде простого текста. Скорее всего, вам просто нужно найти функцию, в которой есть функция «MailApp.sendEmail ()», и настроить ее так, чтобы она включала имя свойства «htmlBody» для вашего тела сообщения.

Вот эта упрощенная функция :

function sendEmail(recipient, sub, mes) {
  MailApp.sendEmail({to: recipient, subject: sub, htmlBody: mes});
}

Чтобы прочитать обо всех параметрах отправки электронной почты с помощью скрипта Google Apps, прочитайте эту страницу .

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