[英]Google Sheet - Send Email
每次条件变为真时,我都需要我的 google 表格来发送电子邮件。 在这种情况下,每次 C2 的值都低于 J2 的值。 在单元格 L2 上有 email 地址。
代码(在网上找到并刚刚编辑)
function CheckPrice() {
var LastPriceRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("C2");
var LastPrice = LastPriceRange.getValue();
var EntryLimitRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("J2");
var EntryLimit = LastPriceRange.getValue();
var StockNameRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("B2");
var StockName = LastPriceRange.getValue();
// Check totals sales
if (LastPrice < EntryLimit){
// Fetch the email address
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("L2");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = 'Ticker ' + StockName + ' has triggered the alert';
var subject = 'Stock Alert';
MailApp.sendEmail(emailAddress, subject, message);
}
}
使用此代码我没有收到任何错误,但我什至没有收到 email。我在第一次运行脚本时按要求授予了权限。
在 L2 上,我放置了我授予权限的相同 email 地址(我将 email 发送给自己)。 我什至尝试放置一个辅助 email 地址。
你能告诉我哪里出了问题吗?
问题:
查看您定义LastPrice
、 EntryLimit
和StockName
的代码的第一行。 他们都来自同一个范围: LastPriceRange
。
我还删除了脚本中所有不必要的调用。 无需多次调用SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts")
,您只需将其放入一个变量并使用该变量即可。
此外,您不需要定义不必要的变量。 例如,您可以使用一行获取单元格的值: sh.getRange("B2").getValue()
。
解决方案:
function CheckPrice() {
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts");
const LastPrice = sh.getRange("C2").getValue();
const EntryLimit = sh.getRange("J2").getValue();
const StockName = sh.getRange("B2").getValue();
// Check totals sales
if (LastPrice < EntryLimit){
// Fetch the email address
const emailAddress = sh.getRange("L2").getValue();
// Send Alert Email.
const message = 'Ticker ' + StockName + ' has triggered the alert';
const subject = 'Stock Alert';
MailApp.sendEmail(emailAddress, subject, message);
}
}
如果您希望在编辑特定单元格时发送 email,则需要将上述解决方案转换为onEdit(e)触发器。 如果你想要一个时基触发器,那么你可以直接使用上面的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.