首页 > 解决方案 > Google Apps 脚本发送附件

问题描述

目前我可以将 pdf 从谷歌电子表格发送到带有附件的这个脚本的电子邮件,但附件无法发送

这是我当前的脚本:

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HELPER").hideSheet();
  var startRow = 2; // First row of data to process
  var getLastRow = 4000; // Number of rows to process
  var dataRange = sheet.getRange(startRow, 4, getLastRow, 7);
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var trigger = row[0];
    var emailAddress = row[2]; // Email column
    if(emailAddress != "" && emailAddress != " "){ 
      var message = "Hi,\n\nSilahkan download dan print attachment ini.\n\nTerima Kasih,\nSistemHBR"; // Content column
      var subject = "FORM CUTI";
      var status_email = row[6];
      if ((trigger != 'FALSE') && (status_email != 'EMAIL_SENT')); // Prevents sending duplicates
      attachments = [SpreadsheetApp.getActiveSpreadsheet().getAs(MimeType.PDF).setName("FORM CUTI")]; { 
        MailApp.sendEmail(emailAddress, subject, message);
        sheet.getRange(startRow + i, 7).setValue('EMAIL_SENT');
        // Make sure the cell is updated right away in case the script is interrupted
        SpreadsheetApp.flush();
        SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HELPER").activate();
        
  }
  //MailApp.sendEmail(message);
  //SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HELPER").activate();
   }
  }
}

我上面的代码有什么问题?

谢谢你

标签: google-apps-scriptgoogle-sheets

解决方案


if ((trigger != 'FALSE') && (status_email != 'EMAIL_SENT'))在您的脚本中,我认为true您可能想要发送电子邮件。那么,下面的修改呢?

从:

if ((trigger != 'FALSE') && (status_email != 'EMAIL_SENT')); // Prevents sending duplicates
 attachments = [SpreadsheetApp.getActiveSpreadsheet().getAs(MimeType.PDF).setName("FORM CUTI")]; { 
   MailApp.sendEmail(emailAddress, subject, message);
   sheet.getRange(startRow + i, 7).setValue('EMAIL_SENT');
   // Make sure the cell is updated right away in case the script is interrupted
   SpreadsheetApp.flush();
   SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HELPER").activate();

}

至:

if ((trigger != 'FALSE') && (status_email != 'EMAIL_SENT')) {
  attachments = [SpreadsheetApp.getActiveSpreadsheet().getAs(MimeType.PDF).setName("FORM CUTI")];
  MailApp.sendEmail(emailAddress, subject, message, {attachments: attachments});
  sheet.getRange(startRow + i, 7).setValue('EMAIL_SENT');
  // Make sure the cell is updated right away in case the script is interrupted
  SpreadsheetApp.flush();
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HELPER").activate();
}
  • 在这种情况下,当(trigger != 'FALSE') && (status_email != 'EMAIL_SENT')是时true,通过包含附件文件发送电子邮件。

参考:


推荐阅读