Khi tôi thay đổi thứ gì đó trong bảng tính của mình, kích hoạt onEdit()
chạy và tôi có thể thấy tất cả các hộp thư của tôi đã đặt trong mã của tôi.MailApp.sendEmail Error Message - "không có quyền gọi sendEmail"
chức năng của tôi dừng lại ở dòng này
MailApp.sendEmail(emailAddress, subject, message);
Tôi chưa bao giờ thấy trường 'Email đã được gửi!' Tin nhắn, và nhận được một lỗi trong BẢNG THI HÀNH:
Bạn không có quyền để gọi sendEmail
Nếu tôi chạy tập lệnh trực tiếp trong trình chỉnh sửa tập lệnh, mọi thứ hoạt động tốt ...
Đây là mã của tôi:
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')
}
}
Nếu bạn đang sử dụng 'Browser.msgBox()' cho mục đích gỡ lỗi, có một tùy chọn khác. Bạn có thể sử dụng 'Logger.log() ', chạy mã, sau đó XEM LOGS. –
Bạn đã xem PHƯƠNG THỨC TIẾN HÀNH? Nó nói gì ở cuối? –
Sử dụng trình gỡ lỗi và đặt điểm ngắt trên dòng 'MailApp.sendEmail()', sau đó chạy trình gỡ rối và khi mã tạm dừng, hãy xem các giá trị cho 'emailAddress, subject, message'. Họ là ai? [Tài liệu của Google - Điểm ngắt] (https://developers.google.com/apps-script/troubleshooting#using_the_debugger_and_breakpoints) –