在 Google 脚本中,MailApp.sendEmails() 和 GmailApp.sendEmails() 无法

In Google Script, MailApp.sendEmails() and GmailApp.sendEmails() is not working. Any suggestions to fix or work around?

本文关键字:sendEmails GmailApp 无法 MailApp Google 脚本      更新时间:2023-09-26

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

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)
 }
 }      

实际上感谢您提供这些链接。 我研究了可安装的触发器,并能够给予 onEdit() 触发器授权,我已经启动并运行了,谢谢。