0

スプレッドシートからメールを自動化するコードをいくつか作成しましたが、それをチーム全体に拡張したいと考えていますが、フッター/署名を追加したいと考えており、受信者と件名をコード自体に含める必要はなく、プルする必要はありませんスプレッドシートから。スプレッドシートに次のように配置しました。

ここに画像の説明を入力

メールのフッターをそのようにしたいのですが、スクリプトを実行すると「Range」が返されます

function EODReportEmail() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EOD Email Tasks");;        // Use data from the active sheet
  var startRow = 2;                                                                            // First row of data to process
  var numRows = sheet.getLastRow();                                                            // Number of rows to process
  var lastColumn = sheet.getLastColumn();                                                      // Last column
  var dataRange = sheet.getRange(startRow, 1, numRows, lastColumn)                             // Fetch the data range of the active sheet
  var data = dataRange.getValues();                                                            // Fetch values for each row in the range

  var recipient = "shea.a.murphy@icloud.com"                                                                              // Email address report will be sent to
  var subject = "Shea Murphy - EOD Email"                                                                              // Subject heading of email e.g. Shea Murphy - EOD Email
  var footer = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EOD Email Information").getRange("C2");
  Logger.log(footer);

  // Work through each row in the spreadsheet
  for (var i = 0; i < data.length; ++i) {
    var row = data[i]; 

 // Assign each column a variable
    var Point1 = row[0];              // Col A: 1st point to be included in email
    var Point2 = row[1];              // Col B: 2nd point to be included in email
    var Point3 = row[2];              // Col C: 3rd point to be included in email
    var Point4 = row[3];              // Col D: 4th point to be included in email
    var Point5 = row[4];              // Col E: 5th point to be included in email

    var Num1 = "<b>1. </b>"           // Number variables for email points
    var Num2 = "<b>2. </b>"
    var Num3 = "<b>3. </b>"
    var Num4 = "<b>4. </b>"
    var Num5 = "<b>5. </b>"

    var Task1 = Num1 + Point1         // Note 1 to be inlcuded in the email
    var Task2 = Num2 + Point2         // Note 2 to be inlcuded in the email
    var Task3 = Num3 + Point3         // Note 3 to be inlcuded in the email
    var Task4 = Num4 + Point4         // Note 4 to be inlcuded in the email
    var Task5 = Num5 + Point5         // Note 5 to be inlcuded in the email

    if (Point1 == undefined) {Task1 = " "};
    if (Point2 == undefined) {Task2 = " "};
    if (Point3 == undefined) {Task3 = " "};
    if (Point4 == undefined) {Task4 = " "};
    if (Point5 == undefined) {Task5 = " "};

  // Build the email message
      var emailBody =  '<b style="font-family:georgia;font-size:18px;font-style:italic; color: #D04A02";>EOD Report</b>';
          emailBody += '<p>Please see what I have worked on today below:<p>';
          emailBody += '<dl><dd>'+ Task1 +'</dd>';
          emailBody += '<dl><dd>'+ Task2 +'</dd>';
          emailBody += '<dl><dd>'+ Task3 +'</dd>';
          emailBody += '<dl><dd>'+ Task4 +'</dd>';
          emailBody += '<dl><dd>'+ Task5 +'</dd>';

          emailBody += '<p>Let me know if you have any questions.<p>';
          emailBody += footer

    // Create the email draft
      GmailApp.sendEmail(
        recipient,          // Recipients
        subject,            // Subject
        ' ',                // Body
        {
        htmlBody: emailBody,    // Options: Body (HTML)


        }
      )

  }
}

基本的に、コード自体に行ごとに書き出すのではなく、受信者、件名、および署名をすべて正しいフォーマットで最後に含めるために、コードを 2 ページにまたがる方法はありますか?

EOD メール情報 ここに画像の説明を入力

EOD メール タスク ここに画像の説明を入力

メール自体

4

1 に答える 1