Как заставить переменную работать в HTML-файле из форм Google? - PullRequest
0 голосов
/ 10 июля 2019

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

Я работал с помощью текста, но не HTML

Файл .gs:

function onFormSubmit(e) {

  var JobName = e.values[10];
    var JobDate = e.values[1];
    var SubmitterName = e.values[2];

    var subject = "Job Form Submitted";
  var htmlBody = HtmlService.createHtmlOutputFromFile('emailtext').getContent();


  MailApp.sendEmail({
    to: xxx@xxxx.com
    subject: 'Test Email markup - ',
    htmlBody: htmlBody,
  });
}

Файл HTML:

</head>

<body>

<p><strong>Submitter Name: </strong>%SubmitterName</p>
<p><strong>Job Name:</strong> %JobName</p>
</body>

Переменные должны отображать не имя переменной

1 Ответ

1 голос
/ 10 июля 2019
  • Вы хотите использовать %SubmitterName из <p><strong>Submitter Name: </strong>%SubmitterName</p> в качестве переменной var SubmitterName = e.values[2].
  • Вы хотите использовать %JobName из <p><strong>Job Name:</strong> %JobName</p> в качестве переменной var JobName = "e.values[10].

Если мое понимание верно, как насчет этой модификации? Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Шаблон 1:

В этом шаблоне Google Apps Script изменяется следующим образом. Значения заменены на replace().

Из:

var htmlBody = HtmlService.createHtmlOutputFromFile('emailtext').getContent();

Кому:

var htmlBody = HtmlService.createHtmlOutputFromFile('emailtext').getContent();
htmlBody = htmlBody.replace("%SubmitterName", SubmitterName);
htmlBody = htmlBody.replace("%JobName", JobName);

Шаблон 2:

В этом шаблоне и Google Apps Script, и HTML изменяются следующим образом. Значения заменяются с использованием шаблонного HTML.

Сценарий Google Apps:

От:
var htmlBody = HtmlService.createHtmlOutputFromFile('emailtext').getContent();
Для того, чтобы:
var htmlBody = HtmlService.createTemplateFromFile('emailtext');
htmlBody.obj = {JobName: JobName, JobDate: JobDate, SubmitterName: SubmitterName};
htmlBody = htmlBody.evaluate().getContent();

HTML

От:
<p><strong>Submitter Name: </strong>%SubmitterName</p>
<p><strong>Job Name:</strong> %JobName</p>
Для того, чтобы:
<p><strong>Submitter Name: </strong><?= obj.SubmitterName ?></p>
<p><strong>Job Name:</strong><?= obj.JobName ?></p>

Примечание:

  • Пожалуйста, выберите одну из 2 моделей.

Ссылки:

Если я неправильно понял ваш вопрос, а это не то направление, которое вы хотите, я прошу прощения.

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