代码之家  ›  专栏  ›  技术社区  ›  Antonio Padua

谷歌应用程序脚本。从工作表中检索电子邮件列表

  •  0
  • Antonio Padua  · 技术社区  · 2 年前

    在下面的脚本中,我必须手动插入电子邮件地址。我宁愿从工作表中获取列表,以便能够在不编辑脚本的情况下更新它。 如何从工作表中检索电子邮件地址列表(工作表!A2:a)?

        function sendReport() {
      
      EMAIL = 'email'
      URL = 'url'
          + '/export?'
          + 'format=pdf'
          + '&size=A4' 
          + '&gid=id' 
          + '&scale=4'
          + '&portrait=true';
    
      
      SpreadsheetApp.getActive();
    
      var response = UrlFetchApp.fetch(URL, {
        headers: {
          'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
        }
      });
    
      var message = {
        to: EMAIL,
        subject: "subject",
        body: "body",
        attachments: [response.getBlob().setName('file.pdf')]
      }
    
      MailApp.sendEmail(message);
    }
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   Tanaike    2 年前

    你期望的剧本是这样的吗?

    修改脚本:

    function sendReport() {
      URL = 'url'
        + '/export?'
        + 'format=pdf'
        + '&size=A4'
        + '&gid=id'
        + '&scale=4'
        + '&portrait=true';
      var response = UrlFetchApp.fetch(URL, {
        headers: {
          'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
        }
      });
    
      // Retrieve values from Spreadsheet.
      var sheet = SpreadsheetApp.getActiveSheet();
      var values = sheet.getRange("A2:A" + sheet.getLastRow()).getDisplayValues();
      
      // Send the email using the email addresses.
      values.forEach(([email]) => {
        if (email) {
          var message = {
            to: email,
            subject: "subject",
            body: "body",
            attachments: [response.getBlob().setName('file.pdf')]
          }
          MailApp.sendEmail(message);
        }
      });
    }
    
    • 如果要设置具体的工作表,请修改 var sheet = SpreadsheetApp.getActiveSheet(); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); .

    参考: