首页 > 解决方案 > 如何使用来自 for 循环的信息来编写电子邮件

问题描述

我正在尝试根据过期项目发送电子邮件。我已经阅读了很多博客,并找到了一个最终奏效的博客(下面的链接)。我昨晚让它工作了,现在不知何故我把它弄坏了。我尝试还原,但我仍然遇到问题。我对这一切都很陌生,所以我非常感谢你能给出的任何解释。现在我希望它只发送一个警报,因为它每天发送的电子邮件数量是有限制的。

function emailAlert() {
   // Same variations.
  
  // today's date information
  var today = new Date();
  var todayMonth = today.getMonth() + 1;
  var todayDay = today.getDate();
  var todayYear = today.getFullYear();

  // 2 months from now
  var oneMonthFromToday = new Date(todayYear, todayMonth, todayDay);
  var oneMonthMonth = oneMonthFromToday.getMonth() + 2;
  var oneMonthDay = oneMonthFromToday.getDate();
  var oneMonthYear = oneMonthFromToday.getYear();

  // getting data from spreadsheet
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Exp");
  var startRow = 2; // First row of data to process
  var numRows = 500; // Number of rows to process

  var dataRange = sheet.getRange(startRow, 1, numRows, 999);
  var data = dataRange.getValues();

  //looping through all of the rows
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];    
    
    
    var expireDateFormat = Utilities.formatDate(new Date(row[5]),
      'ET',
      'MM/dd/yyyy'
    );

    //email Information
    var subject = 'Pantry Item Needs Attention!';
    var message1 =
      row[6] + ' ' + row[3] + ' of ' + row[2] + ' ' + row[1] + ' will expire on ' + expireDateFormat + '. Item can be found in ' + row[7]
       + '. Please Remove and Replace Item.' + 
      '\n' + 'Thanks Steve!';
      
    var message2 =
      row[6] + ' ' + row[3] + ' of ' + row[2] + ' ' + row[1] + ' will expire on ' + expireDateFormat + '. Item can be found in ' + row[7] + 
      '. Please ensure item has been replaced, removed from the pantry, and deleted from inventory.' +
      '\n' + 'Thanks Steve!'

    //expiration date information
    var expireDateMonth = new Date(row[5]).getMonth() + 1;
    var expireDateDay = new Date(row[5]).getDate();
    var expireDateYear = new Date(row[5]).getYear();

    //checking for today
    if (
      expireDateMonth === todayMonth &&
      expireDateDay === todayDay &&
      expireDateYear === todayYear
    ) {
    
       ui.alert(message1);
    }
   }
  }

标签: javascriptgoogle-apps-script

解决方案


我解决了这个问题。我使用的是getYear,它已被getFullYear 取代。现在一切都运转良好。感谢你们!

    expireDateYear = new Date(row[5]).getYear();
    
expireDateYear = new Date(row[5]).getFullYear();


推荐阅读