簡體   English   中英

當數據僅來自電子表格的一個單元格時,如何使用應用程序腳本在 Html 電子郵件中進行換行?

[英]How can i do line break in Html Email using app script while the data is only from one cell of Spreadsheet?

我嘗試從電子表格導入數據並使用 GmailApp 發送。 在我的電子表格的“B4”中,有一個帶有換行符的文本。 如果我嘗試將其傳輸到 Html-Email。 它沒有讀取我從“\n”轉換而來的“ <br /> ”。 它總是在電子郵件中顯示為“你好<br />我在這里!”並且沒有在電子郵件中進行換行。 我應該為它做更多的事情嗎? 謝謝!

編碼:

function splitTest() {
 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Settings");
 var str = ss.getRange("B4").getValue();
  Logger.log(str);
  var array1 = [{}];
  array1 = str.split("\n");
  return array1
};

function sendMail() {
  var ename = 3; //give every variable the right column number. 1st column is 0 and so on.
  var cname = 2;
  var email = 5;
  var emailTemp = HtmlService.createTemplateFromFile("email");
  var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Recipients");
  var wsSettings = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Settings");
  var name = wsSettings.getRange("B2").getValue();
  var subject = wsSettings.getRange("B1").getValue();
  var array1 = splitTest();
  var cMessage = array1.join("<br />");
  var data = ws.getRange("A2:G" + ws.getLastRow()).getValues();
  data = data.filter(function(r){ return r[6] == true}); //return r[a], a is for where the checkbox is. for us to choose who we send the mails.The column starts from 0!
  data.forEach(function(row){
   emailTemp.cmess = cMessage;
   var htmlMessage = emailTemp.evaluate().getContent();
    GmailApp.sendEmail(
      row[email],
      subject,
      "Bitte öffnen Sie das Html-Format,um die Email zu lesen, Danke!",
      {name: name,
      htmlBody: htmlMessage, 
      });
  }); 
};

html代碼

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    
  </head>
  <body>
   
  <div align="left">
<table style="border: none;"><colgroup><col style="width: 487px;" /><col style="width: 115px;" /></colgroup>
<tbody>
<tr style="height: 99pt;">
<td style="vertical-align: top; background-color: #f4cccc;">
<p style="line-height: 1.2; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial;"><span style="border: none;"><img src="https://drive.google.com/uc?id=1rRVBhFpEbp8bjGI9jqWlbn_6K8H4djAv" width="438" height="158" /></span></span></p>
</td>
<td style="border-right: 1pt solid #ffffff; border-bottom: 1pt solid #ffffff; border-top: 1pt solid #ffffff; vertical-align: top; background-color: #f4cccc;">
<p style="line-height: 1.2; text-align: right; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial;"><span style="border: none;"><img src="https://drive.google.com/uc?id=1vwNZtLRAnoRX5WuEWeojEKMf6lOOYbre" width="67" height="137" /></span></span></p>
</td>
</tr>
<tr style="height: 470.66pt;">
<td style="border-left: 1pt solid #ffffff; border-right: 1pt solid #ffffff; vertical-align: top;" colspan="2">
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial;"><?= cbegin ?></span></p>
<br />
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt; white-space:pre-line;"><span style="font-size: 11pt; font-family: Arial;">
  <?= cmess ?>
  </span>

</p>
<br />
<br />
<br />
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial;"><?= cend ?></span></p>
</td>
</tr>
<tr style="height: 60.1465pt;">
<td style="vertical-align: top; background-color: #f4cccc;">
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><strong><span style="font-size: 9pt; font-family: Arial;">Formosa Chinesische Sprachschule e.V.</span></strong></p>
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9pt; font-family: Arial;">Schulort : Geschwister-Scholl-Gymnasium D&uuml;sseldorf</span></p>
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9pt; font-family: Arial;">Redinghovenstra&szlig;e 41, 40225 D&uuml;sseldorf</span></p>
<p style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><strong><span style="font-size: 9pt; font-family: Arial;">Email: </span></strong><a style="text-decoration: none;" href="mailto:formosa.school.germany@gmail.com"><strong><span style="font-size: 9pt; font-family: Arial; color: #1155cc; text-decoration: underline; text-decoration-skip-ink: none;">formosa.school.germany@gmail.com</span></strong></a></p>
</td>
<td style="border-right: 1pt solid #ffffff; border-bottom: 1pt solid #ffffff; border-top: 1pt solid #ffffff; vertical-align: top; background-color: #f4cccc;">&nbsp;</td>
</tr>
</tbody>
</table>
</div>

  </body>
</html>

我找到了答案! 如果我執行.replace()將代碼更改回“<”和“>”,它會起作用,無論如何,謝謝 Cooper! 是的!

var str = emailTemp.evaluate().getContent();
  str1 = str.replace(/&lt;/g,"<");   
  str2 = str1.replace(/&gt;/g,">"); 
....
htmlbody: str2...

嘗試這個:

function splitTest() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Settings");
  var str = ss.getRange("B4").getValue();
  return str.split("\n");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM