Google apps script 如何在谷歌表单上发送有条件的电子邮件警报?
我在我的谷歌工作表上设置了一个电子邮件提醒,如果其中一列中的值低于2,我的邮件会收到一个电子邮件提醒。 我有多个域名,每天检查域名的有效期是非常繁琐的。我创建了一张表格,其中我列出了域名、注册商、托管、今天日期、到期日期、到期剩余天数。现在,我想在“到期剩余天数列”上创建一个警报,以便在剩余天数少于2天时,向我的电子邮件地址列表发送警报电子邮件 我已经做的是为一个单元格值获取一封电子邮件,但我想做的是获取整列或多个列值Google apps script 如何在谷歌表单上发送有条件的电子邮件警报?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在我的谷歌工作表上设置了一个电子邮件提醒,如果其中一列中的值低于2,我的邮件会收到一个电子邮件提醒。 我有多个域名,每天检查域名的有效期是非常繁琐的。我创建了一张表格,其中我列出了域名、注册商、托管、今天日期、到期日期、到期剩余天数。现在,我想在“到期剩余天数列”上创建一个警报,以便在剩余天数少于2天时,向我的电子邮件地址列表发送警报电子邮件 我已经做的是为一个单元格值获取一封电子邮件,但我想做的是获取整列或多个列值 function CheckSales() { // Fetch th
function CheckSales() {
// Fetch the values
var domainexpireRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("domain list").getRange("F2");
var domainexpire = domainexpireRange.getValues();
// Check domain expiring
if ( domainexpire < 2){
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Company emails").getRange("B2:B4");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = '2019 smtp Domain Expiring in two days. Please check the sheet domain sheet '; // Second column
var subject = '2019 smtp Domain Expiring';
MailApp.sendEmail(emailAddress, subject, message);
}
}
功能检查销售(){
//获取值
var domainexpireRange=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“域列表”).getRange(“F2”);
var domainexpire=domainexpirelange.getValues();
//检查域是否过期
如果(域名过期<2){
var emailRange=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“公司电子邮件”).getRange(“B2:B4”);
var emailAddress=emailRange.getValues();
//发送提醒电子邮件。
var message='2019 smtp域将在两天后过期。请检查域表';//第二列
var subject='2019 smtp域到期';
MailApp.sendmail(电子邮件地址、主题、消息);
}
}
我有一个有多行和多列的工作表,我要做的是检查F列,如果F列上的任何值小于2,则向我的电子邮件地址发送一封警报电子邮件。
如果我将代码复制粘贴到多次并将“getRange(“F2”);”更改为F2、F3、.F100,我的代码工作正常。
但这并不是一个好的编码方式。谁能告诉我是否可以编辑一些代码并得到结果
我试着使用“getRange”(“F2:F”);&getRange(“F2:F54”);但它没有成功
感谢您的帮助。尝试使用for语句在整个工作表中循环,下面的语句应该可以工作:
function checkSales() {
// Fetch the values
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("domain list");
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
// loop through each row starting at row 2
for (var i = 1; i < data.length; i++) {
var domainExpire = data[i][5];
// Check domain expiring
if (domainExpire < 2) {
var emailRange = spreadsheet.getSheetByName("Company emails").getRange("B2:B4");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = '2019 smtp Domain Expiring in two days. Please check the sheet domain sheet '; // Second column
var subject = '2019 smtp Domain Expiring';
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
功能检查销售(){
//获取值
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var sheet=电子表格.getSheetByName(“域列表”);
var dataRange=sheet.getDataRange();
var data=dataRange.getValues();
//从第2行开始循环遍历每一行
对于(变量i=1;i
试试这个:
function CheckSales() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('domain list');
var domainexpireRange=sh.getRange(1,6,sh.getLastRow()-1,1);
var domainexpire=domainexpireRange.getValues();
for(var i=0;i<domainexpire.length;i++) {
// Check domain expiring
if (domainexpire[i][5]<2){
var emailRange=ss.getSheetByName("Company emails").getRange("B2:B4");
var emailAddress=emailRange.getValues().map(function(r){return r[0];}).join(',');
// Send Alert Email.
var dateString=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy");
var message=Utilities.formatString('%s smtp Domain Expiring in two days. Please check the sheet domain sheet.',dateString);
var subject=Utilities.formatString('%s smtp Domain Expiring',dateString);
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
功能检查销售(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName(“域列表”);
var domainexpireRange=sh.getRange(1,6,sh.getLastRow()-1,1);
var domainexpire=domainexpirelange.getValues();
对于(var i=0;我猜,您可以循环浏览列[可能累积所有即将到期的域]并发送电子邮件。非常感谢..工作正常..刚刚制作了一个编辑var spreadsheet=SpreadsheetApp.getActiveSpreadsheet();而不是var spreadsheet=SpreadsheetApp.getActiveSpreadsheet;感谢Ross的回答:):)没问题&oops!我刚刚编辑了解决方案,为其他想要使用它的人添加了括号。