簡體   English   中英

從谷歌表發送個性化 email

[英]Send personalise email from google sheet

我很難根據下表編寫腳本來發送 email

“agent ldap”是收件人,“TL ldap”是 CC,rest 4 列在消息內作為表格

我希望消息如下:

您好,請關注您對我們已注冊的請求的反饋:

包含 C、D、E 和 F 列的表格

你已經可以檢查了

我的主要困難是導致行數可能會改變(不超過五行),這三種方式的狀態也可以改變。 我將復制此表上的值,然后發送 email。

有沒有辦法根據名稱為 F 列添加條件語句,為背景添加顏色? 因為我也想把這一列包括在桌子上。

我的腳本是:

function VacationRequest() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    var startRow = 2; // First row of data to process
    var numRows = 2; // Number of rows to process
    var dataRange = sheet.getRange(startRow, 1, numRows, 2);
    // Fetch values for each row in the Range.
    var data = dataRange.getValues();
    var emailRecipients = data[0] + "@google.com";
    var CCEmail = data[1] + "@google.com";
    var emailSubject = "Vacation request";
    var emailBody = "Hello, follow your feedback regarding your requests that we have registered: \
    \
    "The table with the columns C, D, E and F"
    \
    You can already check"


MailApp.sendEmail({
  to: emailRecipients,
  subject: emailSubject,
  htmlBody: emailBody,
  CC: CCEmail
 });

}



在此處輸入圖像描述

方法

您可以使用新的 Javascript 模板文字 ->` 在 HTML 中構建表。

這是一個在 for 循環中構建表的示例,該表使用純文本后備正文檢查 F 列中的值:

function myFunction() {
  let ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let rows = ss.getDataRange().getValues();
  for (let i in rows) {
    let bg_color;
    switch(rows[i][5]) {
        case 'Reflected':
              bg_color = 'green';
              break;
        case 'Rejected':
              bg_color = 'pink';
              break;
        case 'Pending':
              bg_color = 'orange';
              break;
        default:
              bg_color = 'white';
    }
    let htmlBody = `
      <p>Hello, follow your feedback regarding your requests that we have registered:<\/p>
        <table>
        <tr>
        <th>From the<\/th><th>to the (included)<\/th><th>Date of request<\/th>
        <\/tr>
        <tr>
          <td>
            ${rows[i][2]}
          <\/td>
          <td>
            ${rows[i][3]}
          <\/td>
          <td>
            ${rows[i][4]}
          <\/td>
          <td style="background-color: ${bg_color}">
            ${rows[i][5]}
          <\/td>
        <\/tr>
      <\/table>
      <p>You can already check<\/p>`;
      let body = `
      Hello, follow your feedback regarding your requests that we have registered:
      ${rows[i][2]}, ${rows[i][3]}, ${rows[i][4]} .
      You can already check.`;
      let options = {
        "htmlBody": htmlBody
      }
      MailApp.sendEmail(rows[i][1], "Vacation request", body, options);
   }
}

參考:

發郵件

JS 模板字面量

這是你想要的:

function VacationRequest() {
  var sheet = SpreadsheetApp.getActive();
  var startRow = 2; 
  var numRows = 2; 
  var dataRange = sheet.getRange(startRow, 1, numRows, 2);
  var data = dataRange.getValues();
  for(var i=0;i<data.length;i++) {
    var emailRecipients = data[i][0] + "@google.com";
    var CCEmail = data[i][1] + "@google.com";
    var emailSubject = "Vacation request";
    var emailBody = "Hello, follow your feedback regarding your requests that we have registered: You can already check";
    MailApp.sendEmail({to: emailRecipients,subject: emailSubject,htmlBody: emailBody,CC: CCEmail});
  }
}

暫無
暫無

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

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