在Google Script中,MailApp.sendEmails()和GmailApp.sendEmails()无效。有任何修复或解决方法的建议吗?

时间:2016-03-14 19:54:56

标签: javascript google-apps-script google-sheets

每当我在Google Script中使用MailApp或GmailApp时,它都无效。我已经使用其他功能测试了这两个功能,例如检索邮件和创建草稿。似乎MailApp和GmailApp不想连接到我的Gmail帐户。我正在使用Google电子表格编写此脚本。我确实让.sendEmails()工作了一次,但是无法复制方案。这是应该有效的最终产品:

function onEdit(e){
var date = new Date()
var time = ":" + date.getMinutes()
var hours24 = date.getHours() + 1; // retrieve current hours (in 24 mode)
var dayMode = hours24 < 12 ? "am" : "pm"; // if it's less than 12 then "am"
var hours12 = hours24 <= 12 ? (hours24 == 0 ? 12 : hours24) : hours24 - 12;
// "0" in 24-mode now becames "12 am" in 12-mode – thanks to user @Cristian
SpreadsheetApp.getActiveSheet().getRange('J2').setValue(date);
SpreadsheetApp.getActiveSheet().getRange('J3').setValue(hours12 + time +        dayMode);


var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var mycell = ss.getActiveSelection();
  var cellrow = mycell.getRow();  
  var cellcol = mycell.getColumn();

var range = sheet.getRange(cellrow,cellcol); 
var data = range.getValue();

    SpreadsheetApp.getActiveSheet().getRange('K3').setValue("pass");

if( cellrow >= 2){
    var currinv = sheet.getRange(cellrow, 5)
    var plusinv = currinv.getValue() + data;
    var minusinv = currinv.getValue() - data;
    SpreadsheetApp.getActiveSheet().getRange('K4').setValue("pass");
if(cellcol == 7) {
  SpreadsheetApp.getActiveSheet().getRange(cellrow,5).setValue(plusinv);
  SpreadsheetApp.getActiveSheet().getRange(cellrow,7).setValue("");
  SpreadsheetApp.getActiveSheet().getRange('J4').setValue(cellcol);
  SpreadsheetApp.getActiveSheet().getRange('K5').setValue("pass");
}

if(cellcol == 9) {
  SpreadsheetApp.getActiveSheet().getRange(cellrow,5).setValue(minusinv);
  SpreadsheetApp.getActiveSheet().getRange(cellrow,9).setValue("");
  SpreadsheetApp.getActiveSheet().getRange('J5').setValue(cellcol);
  SpreadsheetApp.getActiveSheet().getRange('K6').setValue("pass");
}

}
 var rowcurr = 2
 var rowcheck = currinv.getValue() 
 if(rowcheck == 1){
 SpreadsheetApp.getActiveSheet().getRange('K7').setValue("pass");
 var recipient = "someone@example.com";
   var subject = "Test Email Alert System: Toner Inventory";
   var body = "This is a test email from the Toner Invenoty Alert System";

  MailApp.sendEmail(recipient, subject, body)

  //or in case MailApp doesn't work anymore

  //GmailApp.sendEmail(recipient, subject, body)

 }
 }      

1 个答案:

答案 0 :(得分:0)

其实感谢您的链接。我查看了可安装的触发器,并且能够给出onEdit()触发器授权,我已经启动并运行了谢谢。