그래서 셀의 날짜를 기준으로 자동으로 전송되도록 미리 알림 이메일을 설정하려고합니다. 다음과 같은 종류 : Google Apps 스크립트-셀 의 날짜를 기준으로 이메일 보내기 샘플 통합 문서는 다음과 같습니다. https://docs.google.com/spreadsheet/ccc?key=0AiHAV8ZZ5nexdDJqODhmamhldjN1ZTRKc09iZXNBZ3c#gid=0
이것은 내가 가진 코드입니다.
function sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow()-1; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
// Fetch values for each row in the Range.
var data = dataRange.getValues();
//Logger.log(data)
for (i in data) {
var row = data[i];
var date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
//Logger.log(date);
var sheetDate = new Date(row[2]);
//Logger.log(sheetDate);
var Sdate = Utilities.formatDate(date,'GMT+0200','yyyy:MM:dd')
var SsheetDate = Utilities.formatDate(sheetDate,'GMT+0200', 'yyyy:MM:dd')
Logger.log(Sdate+' =? '+SsheetDate)
if (Sdate == SsheetDate){
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
var subject = "It's time to practice!" +message;
MailApp.sendEmail(emailAddress, subject, message);
//Logger.log('SENT :'+emailAddress+' '+subject+' '+message)
}
}
}
하지만 작동하는지 확실하지 않으며 자동으로 이메일을 보내나요? 분명히 저는 대본을 거의 알지 못합니다.
여기에 공유 된 기존 코드에 오류가 하나만있어 작동하지 않습니다.
var sheetDate = new Date (row [2]);
배열에는 2 개의 인덱스 만 있으므로 다음과 같아야합니다.
var sheetDate = new Date (row [1]);
또한 Utilities.formatDate를 yyyy : MM : dd 형식으로 사용하고 있기 때문에 Utilities.formatDate가 시간 구성 요소가없는 문자열을 반환하므로 시간 분 및 초를 설정할 필요가 없습니다. 또한 sheetDate 또는 date를 생성 할 필요가 없습니다. 둘 다 Utilities.formatDate의 첫 번째 매개 변수로 구성 될 수 있습니다 (아래 참조). 이 주제에 대한 또 다른 한 가지는 날짜 값이 스프레드 시트에서 날짜 형식으로 지정되어 스크립트에 날짜 개체로 반환되므로 실제로 new Date (row [1])를 호출 할 필요가 없습니다. ..하지만 아무것도 아프지 않습니다.
function sendEmail() {
try{
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow()-1; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
//Logger.log(sheetDate);
var Sdate = Utilities.formatDate(new Date(),'GMT-0500','yyyy:MM:dd')
var SsheetDate = Utilities.formatDate(new Date(row[1]),'GMT+0200', 'yyyy:MM:dd')
Logger.log(Sdate+' =? '+SsheetDate)
if (Sdate == SsheetDate){
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
var subject = "It's time to practice!" +message;
MailApp.sendEmail(emailAddress, subject, message);
//Logger.log('SENT :'+emailAddress+' '+subject+' '+message)
}
}
}catch(err){
Logger.log(err.lineNumber + ' - ' + err);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다