使用Google Apps脚本发送带有.xlsx附件的电子邮件(将100个附件作为100条单独的电子邮件发送到一个电子邮件地址)

时间:2020-09-11 05:52:52

标签: google-apps-script xlsx

我正尝试将多个Excel文件(.xlsx)作为附件发送到单独电子邮件中的一个电子邮件地址。例如,100个excel文件(.xlsx)表示发送100个单独的电子邮件。有什么方法可以使用App Script自动执行此手动过程?我对App Script还是很陌生,并且正在尝试如下图所示:

function sendEmails() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var lr = ss.getLastRow();
   for i in range(lr): ## 
       var attachment_file =  ss.getRange(i, 2).getValue()
       MailApp.sendEmail("aa@example.com", "blank", "blank", {
         attachments: [attachment_file.getAs(MimeType.xlsx)]
            });

xlsx文件有大小限制吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

答案:

假设您的文件在云端硬盘中并且具有唯一的名称,则可以使用DriveAppMailApp来做到这一点。

代码修改:

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lr = sheet.getLastRow();
  var fileNames = sheet.getRange(1, 2, lr, 1).getValues(); 
  var xlsxMT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

  for (var i = 0; i < lr; i++) { // modified
    let file = DriveApp.getFilesByName(fileNames[i][0]).next(); // modified
    MailApp.sendEmail("aa@example.com", "blank", "blank", {
      attachments: [file.getAs(xlsxMT)] // modified
    });
  }
}

修改:

  • 检索for循环之外的所有文件名,以节省处理时间。
  • 使用DriveApp.getFilesByName()使用工作表中的文件名获取文件。注意:假设云端硬盘中只有一个文件具有该名称。
  • 使用正确的application/vnd.openxmlformats-officedocument.spreadsheetml.sheet MIMEType附加的文件。

我希望这对您有帮助!

参考文献:

相关问题