Как добавить список в тело шаблона электронной почты с помощью тегов html с помощью скрипта приложений? Не стремитесь сделать все тело электронной почты html

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

это в настоящее время находится в ячейке как переменная messageBody1

Hello {Name},

Your requested grades for the {For} for the language {Lang Exam 1}, and exam {Exam 1} are below.

Exam name: {Exam 1}, # of grades: {Num Exam 1}

Your grades are 

<html>
<head>
<script>
</script>
</head>
<body>
<ul>
<li> {data}
</li>
</ul>
</body>
</html>

Где {данные} имеют A,B,C,D,F,A,B.

Я хотел бы, чтобы он был указан вместо этого как


А
Б
С

Я пробовал ниже, но, похоже, в Gmail не отображаются оценки.

var messageBody1 = bodyTemplateExam1LangExam1.replace(/{Name}/g,Name).replace(/{data}/g,data).replace("{For}",For).replace(/{Exam 1}/g,Exam1).replace(/{Lang Exam 1}/g,LangExam1).replace(/{Num Exam 1}/g,NumExam2);
if (Exam1 == "Math 2" && LangExam1 == "Spanish"){
   MailApp.sendEmail(Email,subjectLine, messageBody1);}

Читать минимальный воспроизводимый пример. Ваш код не воспроизводится. Предоставьте фиктивные данные для всех необъявленных переменных в вашем коде, особенно data.

TheMaster 25.06.2019 12:23
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
212
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предполагая, что ваш ввод данных представляет собой строку, определенную как «A, B, C, D, F, A, B».

Если вы хотите отобразить ваши {данные} в виде списка внутри вашего html-тела, способ сделать это — назначить «данные» массиву, при этом каждая запись данных, разделенная запятыми, будет назначена элементу массива. Затем вы прокручиваете массив и заключаете каждый из элементов в теги <li> </li> и добавляете все заключенные элементы в строку, которая заменит ваш заполнитель {data}. Вот как может выглядеть код:

    function myFunction() {

  var bodyTemplateExam1LangExam1=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').getValue();

  var Name = "testname";
  var data = "A,B,C,D,F,A,B";
  var For = "homework";
  var Exam1 = "Math 2";
  var LangExam1 = "Spanish";
  var NumExam2=2;

  var Email = "[email protected]";
  var subjectLine = "exam results";

  var dataArray=data.split(",");
  var list = "";
  dataArray.forEach(function(element) 

   list=list+"<li>"+element+"</li>";
  })
  var messageBody1 = bodyTemplateExam1LangExam1.replace(/{Name}/g,Name).replace(/{data}/g,list).replace("{For}",For).replace(/{Exam 1}/g,Exam1).replace(/{Lang Exam 1}/g,LangExam1).replace(/{Num Exam 1}/g,NumExam2);
  if (Exam1 == "Math 2" && LangExam1 == "Spanish")

    Logger.log(messageBody1)
    MailApp.sendEmail 
    ({
      to: Email,
      subject: subjectLine,
      htmlBody: messageBody1
    })
  }  
}

Со следующим содержимым, содержащимся в ячейке A1:

<p>
Hello {Name},

Your requested grades for the {For} for the language {Lang Exam 1}, and exam {Exam1} are below.

Exam name: {Exam 1}, # of grades: {Num Exam 1}

Your grades are 
<ul>
{data}
</ul>
</p>

(Вам не нужна полная запись, и вы можете оставить большую часть неиспользуемых тегов).

Другие вопросы по теме