Automation 从电子表格发送电子邮件

Automation 从电子表格发送电子邮件,automation,gmail,spreadsheet,Automation,Gmail,Spreadsheet,我从以下地方抓取了这个脚本: //此常量写在C列中,用于接收电子邮件的行 //已成功发送。 var EMAIL_SENT=“EMAIL_SENT”; 函数sendmails2(){ var sheet=SpreadsheetApp.getActiveSheet(); var startRow=2;//要处理的第一行数据 var numRows=2;//要处理的行数 //获取单元格A2:B3的范围 var dataRange=sheet.getRange(startRow,1,numRows,3)

我从以下地方抓取了这个脚本:

//此常量写在C列中,用于接收电子邮件的行
//已成功发送。
var EMAIL_SENT=“EMAIL_SENT”;
函数sendmails2(){
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=2;//要处理的第一行数据
var numRows=2;//要处理的行数
//获取单元格A2:B3的范围
var dataRange=sheet.getRange(startRow,1,numRows,3)
//获取范围中每行的值。
var data=dataRange.getValues();
对于(变量i=0;i
我想知道我是否能够制作一个动态的主题行(每封电子邮件)。可能吗

谢谢大家!

  • 詹姆斯

  • 当然可以。假设您将主题的值放入下一列(示例中的D),只需执行以下操作:

    // This constant is written in column C for rows for which an email
    // has been sent successfully.
    var EMAIL_SENT = "EMAIL_SENT";
    
    function sendEmails2() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var startRow = 2;  // First row of data to process
      var numRows = 2;   // Number of rows to process
      // Fetch the range of cells A2:B3
      var dataRange = sheet.getRange(startRow, 1, numRows, 3)
      // Fetch values for each row in the Range.
      var data = dataRange.getValues();
      for (var i = 0; i < data.length; ++i) {
        var row = data[i];
        var emailAddress = row[0];  // First column
        var message = row[1];       // Second column
        var emailSent = row[2];     // Third column
        var subject = row[3];
        if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates
          MailApp.sendEmail(emailAddress, subject, message);
          sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
          // Make sure the cell is updated right away in case the script is interrupted
          SpreadsheetApp.flush();
        }
      }
    }
    
    //此常量写在C列中,用于接收电子邮件的行
    //已成功发送。
    var EMAIL_SENT=“EMAIL_SENT”;
    函数sendmails2(){
    var sheet=SpreadsheetApp.getActiveSheet();
    var startRow=2;//要处理的第一行数据
    var numRows=2;//要处理的行数
    //获取单元格A2:B3的范围
    var dataRange=sheet.getRange(startRow,1,numRows,3)
    //获取范围中每行的值。
    var data=dataRange.getValues();
    对于(变量i=0;i
    这太棒了!谢谢你,吉尔!我知道这可能非常简单,但我绝对不是一个程序员,这绝对做到了!再次感谢。很高兴能帮忙!请将我的答案标记为正确:)
    // This constant is written in column C for rows for which an email
    // has been sent successfully.
    var EMAIL_SENT = "EMAIL_SENT";
    
    function sendEmails2() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var startRow = 2;  // First row of data to process
      var numRows = 2;   // Number of rows to process
      // Fetch the range of cells A2:B3
      var dataRange = sheet.getRange(startRow, 1, numRows, 3)
      // Fetch values for each row in the Range.
      var data = dataRange.getValues();
      for (var i = 0; i < data.length; ++i) {
        var row = data[i];
        var emailAddress = row[0];  // First column
        var message = row[1];       // Second column
        var emailSent = row[2];     // Third column
        var subject = row[3];
        if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates
          MailApp.sendEmail(emailAddress, subject, message);
          sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
          // Make sure the cell is updated right away in case the script is interrupted
          SpreadsheetApp.flush();
        }
      }
    }