Как добавить список в тело шаблона электронной почты через теги html с помощью скрипта apps? Не хочу делать все тело письма html - PullRequest
0 голосов
/ 25 июня 2019

Я создал шаблон электронной почты на другой вкладке в листах. Этот шаблон по существу перечисляет оценки многих сданных экзаменов. Я полагаю, что это будет так же просто, как сделать простой 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.

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


A
B
C

Я пробовал нижеприведенное, но, похоже, в 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);}

1 Ответ

1 голос
/ 25 июня 2019

Предполагая, что введенные вами данные - это строка, определенная как "A, B, C, D, F, A, B".

Если вы хотите отобразить ваши {данные} в виде списка в htmlbody, способ сделать это состоял бы в том, чтобы назначить «данные» массиву, при этом каждая разделенная запятыми запись данных будет назначена элементу массива.Затем вы должны пройти через массив и заключить каждый из элементов в теги <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="testmail@test.com";
  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>

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

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