为什么sendEmail功能不起作用?

时间:2013-06-22 05:28:55

标签: google-apps-script

我想知道我的Google Apps脚本出了什么问题。当第2列中的任何单元格中不再包含“ - ”而下一个单元格为“否”时,我尝试发送电子邮件。显然,sendEmail函数由于某种原因不起作用。

我在下面的小电子表格中做了一些例子。我希望在第三行匹配时发送电子邮件。

   1  2  3
1  00 - Yes
2  00 - No
3  00 x No

这是我的代码:

function onEdit() {
     var s = SpreadsheetApp.getActiveSheet();
     if( s.getName() == "Sheet4" ) { //checks that we're on the correct sheet
       var r = s.getActiveCell();
       var nextCell = r.offset(0, 1);
       if(( r.getColumn() == 2 ) && ( r.getValue() !== '-' ) && ( nextCell.getValue() === 'No' )){ //checks the cell
           MailApp.sendEmail('example@gmail.com', 'test email from Google Spreadsheet', 'Let me know if this came through ok');    
       }
     }
    }

2 个答案:

答案 0 :(得分:1)

首先,检查不平等的条件是!=。所以尝试下面的修改代码。 其次,您将发送电子邮件至example@gmail.com。我假设实际代码将电子邮件发送到真实地址。

function onEdit() {
     var s = SpreadsheetApp.getActiveSheet();
     if( s.getName() == "Sheet4" ) { //checks that we're on the correct sheet
       var r = s.getActiveCell();
       var nextCell = r.offset(0, 1);
       if(( r.getColumn() == 2 ) && ( r.getValue() != '-' ) && ( nextCell.getValue() == 'No' )){ //checks the cell
           MailApp.sendEmail('example@gmail.com', 'test email from Google Spreadsheet', 'Let me know if this came through ok');    
       }
     }
    }

答案 1 :(得分:1)

onEdit()函数是简单触发函数的示例。如Understanding Triggers中所述,简单触发器无法访问需要身份验证的服务。这就是MailApp和GmailApp无法发送邮件的原因。