[google-apps-script] MailApp.sendEmail 오류 메시지 - "sendEmail을 호출 할 수있는 권한이 없습니다"


Answers

Question

스프레드 시트에서 무언가를 변경하면 onEdit() 트리거가 실행되고 코드에 표시된 모든 msgbox를 볼 수 있습니다.

내 기능이이 줄에서 멈 춥니 다.

MailApp.sendEmail(emailAddress, subject, message);

나는 'Email sent!'라는 메시지를 보지 못했고 EXECUTION TRANSCRIPT에 오류가 발생합니다.

sendEmail을 호출 할 수있는 권한이 없습니다.

스크립트 편집기에서 스크립트를 직접 실행하면 모든 것이 잘 작동합니다 ...

여기 내 코드가 있습니다 :

function onEdit() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var sheetname = sheet.getName()
      var AcCellRange = sheet.getActiveCell()
      var AcCol = AcCellRange.getColumn()
      var AcRow = AcCellRange.getRow()

      if (sheetname=="Questions/Réponses") {
        //Browser.msgBox(AcCol+' / '+AcRow)
       //liste d'instructions
        //Boucle si les colonne sont comprise dans le range
        if ((AcCol==3) || ((AcCol==7))){
          //Browser.msgBox(AcCol)
          if (AcRow > 7){
            //Browser.msgBox(AcRow)
            sendEmails()
          }
        }
      }
      else
      {}
    }    
function sendEmails() {
      Browser.msgBox('SendEmails')
      var spreadsheet = SpreadsheetApp.getActive();
      var sheet = spreadsheet.getSheetByName('ListCourriel');
      Browser.msgBox('SendEmails2')
      var sheetDonnee = spreadsheet.getSheetByName('Questions/Réponses');
      var RangeProjet = sheetDonnee.getRange(1, 3)
      var NoProjet = RangeProjet.getValue()
      var RangeProjet = sheetDonnee.getRange(4, 3)
      var ProjName = RangeProjet.getValue()
      Browser.msgBox('SendEmails3')
      var startRow = 2;  // First row of data to process
      var LastRows = sheet.getRange(1,4)
      var numRows = LastRows.getValue();   // Number of rows to process
      // Fetch the range of cells A2:B3
      var dataRange = sheet.getRange(startRow, 1, numRows, 2)
      // Fetch values for each row in the Range.
      var data = dataRange.getValues();
      Browser.msgBox('SendEmails4')
      //Permet d'aller cherche les info de la ligne active
      var ActiveCellRange = sheetDonnee.getActiveCell()
      var ActiveRows = ActiveCellRange.getRow()
      var NoLigne = sheetDonnee.getRange(ActiveRows,1)
      var sDep = sheetDonnee.getRange(ActiveRows,2)
      var sDate = sheetDonnee.getRange(ActiveRows,4)
      var sInitiale = sheetDonnee.getRange(ActiveRows,5)
      var sQuestion = sheetDonnee.getRange(ActiveRows,3)
      Browser.msgBox('SendEmails5')
      var rDate = sheetDonnee.getRange(ActiveRows,9)
      var rInitiale = sheetDonnee.getRange(ActiveRows,10)
      var rReponse = sheetDonnee.getRange(ActiveRows,7)

      Browser.msgBox('SendEmails6')
      var subject = 'Modif. Question/Réponse - Projet: ('+NoProjet+') '+ProjName;
      var message = "No Ligne : "+NoLigne.getValue()+String.fromCharCode(10)+String.fromCharCode(10)+"Reponsable : "+sInitiale.getValue()+String.fromCharCode(10)+"Date : "+sDate.getValue()+String.fromCharCode(10)+"Question : "+String.fromCharCode(10)+sQuestion.getValue()+String.fromCharCode(10)+String.fromCharCode(10)+"************************************"+String.fromCharCode(10)+String.fromCharCode(10)+"Reponsable : "+rInitiale.getValue()+String.fromCharCode(10)+"Date : "+rDate.getValue()+String.fromCharCode(10)+"Réponse : "+String.fromCharCode(10)+rReponse.getValue()
      //Browser.msgbox(subject)

      Browser.msgBox('SendEmails7')
      for (i in data) {
        Browser.msgBox('SendEmails8')
        var row = data[i];
        var emailAddress = row[0];  // First column
        Browser.msgBox('SendEmails9')
        MailApp.sendEmail(emailAddress, subject, message);
        Browser.msgBox('Email sent')
      }
    }



Links