Google Script - преобразовать шаблон HTML в строку - PullRequest
0 голосов
/ 10 июля 2020

Итак, я некоторое время просматривал StackOverlow, и ближайший ответ, который я нашел, - this .

Я создал шаблон для отправки электронных писем, и я бы хотели бы повторно использовать его для других целей, например, для описания события. Я изо всех сил пытаюсь получить распечатку шаблона HTML в удобочитаемом формате, точно так же, как вы получили его в электронном письме.

Вот шаблон HTML:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
<p>Hi <?!= OOOCLIENTFIRSTNAME?>,</p>
  </body>
</html>

Вот код шаблона:

var emailtemplate  = HtmlService.createTemplateFromFile('XXXXX');
  emailtemplate.OOOCLIENTFIRSTNAME = clientfirstname;
var emailbody = emailtemplate.evaluate();

Итак, когда я помещаю его в свойство htmlbody параметра метода sendEmail, он работает отлично, и электронная почта отправляется, как и планировалось. Вот код GmailApp:

GmailApp.sendEmail(clientemail, 'TEST TITLE', '',
                      {htmlBody: emailBody.getContent()};

Я хочу получить результат в виде простой строки, например «Привет, имя». Я попытался использовать .getContent, но это привело к получению исходного кода HTML, а не его вывода. Есть идеи?

1 Ответ

1 голос
/ 10 июля 2020

Я предлагаю вам другой подход:

Просто создайте свое приветствие в части скрипта приложений, прежде чем передавать его HTML.

Код: gs

function myFunction() {
  var emailtemplate  = HtmlService.createTemplateFromFile('index');
  var greeting = "Hi " + clientfirstname + ",";
  emailtemplate.OOOCLIENTFIRSTNAME = greeting;
  var emailBody = emailtemplate.evaluate();
  GmailApp.sendEmail(clienemail, 'TEST TITLE', '',{htmlBody: emailBody.getContent()});
  var reusedGreeting = greeting + " how are you?";
  Logger.log(reusedGreeting);
}

index. html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
<p> Hi <?!= OOOCLIENTFIRSTNAME?>,</p>
  </body>
</html>

Почему?

Когда вы оцениваете шаблон в рамках обычной функции (в отличие от создания WebApp с doGet() функция, которая позволит вам передать переменную на сервер с помощью google.script.run ) нет простого способа получить внутреннюю HTML. Вам нужно будет либо

  • извлечь строку с помощью Regex
  • или проанализировать html, как описано, например, здесь

Оба решения будут излишними для того, что вы пытаетесь сделать.

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