簡體   English   中英

Google腳本,用於在單元格值低於特定值問題時發送電子郵件

[英]Google script for sending email if cell value is below certain value issue

JavaScript的新手。 對於認識的人來說,這可能是非常明顯/輕松的解決方案。

嘗試編寫一個腳本,如果單元格值降至100以下並將其顏色更改為藍色,則該腳本將發送電子郵件:

我試圖通過調用一個函數來編寫它:

function sendemails() {
  var emailAddress = "email@address.com"; 
  var message = "test body";
  var subject = "test subject";
  MailApp.sendEmail(emailAddress, subject, message);

}

function onEdit(e) {

  var range = e.range;
  if(range.getValue() < 100) {
  range.setBackgroundColor('blue');
 }

  if(range.getValue() < 100) {
  sendemails()

  }
}

我也嘗試過直接發送郵件:

function onEdit(e) {

  var range = e.range;
  if(range.getValue() < 100) {
  range.setBackgroundColor('blue');
 }

  if(range.getValue() < 100) {
  var emailAddress = "email@address.com"; 
  var message = "test body";
  var subject = "test subject";
  MailApp.sendEmail(emailAddress, subject, message);

  }
}

我無法工作,可能是因為我沒有正確調用該函數或錯過了明顯的事情。 單元格變為藍色,並且如果我自己運行sendemails函數,而不是由於onedit的結果,它將發送電子郵件。 我只是在努力打電話。

任何幫助或解釋將不勝感激!

謝謝

原因很簡單,Google已在開發人員指南中說明了這一點:

由於簡單觸發器會自動觸發,而無需詢問用戶授權,因此它們受到以下限制:

  • 他們無法訪問需要授權的服務。 例如,簡單觸發器無法發送電子郵件,因為Gmail服務需要授權,但是簡單觸發器可以使用Language Service(匿名)翻譯短語。

請在此處查看“限制”部分。

要變通解決此問題,您可以創建一個正常的函數sendEmail() 可以將此功能添加為可安裝的觸發器,然后允許其調用需要授權的服務。 您可以在這里閱讀更多有關它的信息

發送郵件的代碼如下所示:

function sendEmail() {
  var range = SpreadsheetApp.getActiveRange();
  if (range.getValue() < 100){
     var emailAddress = "email@example.com";
     var message = "test body";
     var subject = "test subject";
     MailApp.sendEmail(emailAddress, subject, message);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM