Исключение: Параметры (Строка,Строка,Строка,(класс),(класс)) не соответствуют подписи метода для GmailApp.SendEmail

#google-apps-script

Вопрос:

Я пытаюсь выяснить, как устранить мою ошибку, как указано в объекте. Что-то идет не так с

GmailApp.отправить по электронной почте.

Кстати, я абсолютный новичок в газовом кодировании, и если вы думаете, что сценарий можно улучшить, не стесняйтесь.

 function emailAsPDF() {   SpreadsheetApp.flush();  var ss = SpreadsheetApp.getActiveSpreadsheet();  ss.setActiveSheet(ss.getSheetByName("Recherche"));  var sheet = ss.getActiveSheet();  var gid = sheet.getSheetId();  var pdfOpts =     // export as pdf  'amp;size=0'   // paper size letter / You can use A4 or legal  'amp;portrait=false'   // orientation portal, use false for landscape  'amp;fitw=true'   // fit to page width false, to get the actual size  'amp;sheetnames=falseamp;printtitle=true'   // hide optional headers and footers  'amp;pagenumbers=trueamp;gridlines=false'   // hide page numbers and gridlines  'amp;fzr=true'   // do not repeat row headers (frozen rows) on each page  'amp;attachment=false'    gid; // 'amp;size=0amp;fzr=trueamp;portrait=falseamp;fitw=trueamp;gridlines=falseamp;printtitle=trueamp;sheetnames=falseamp;pagenumbers=trueamp;attachment=falseamp;gid=' gid;  var url = ss.getUrl().replace(/edit$/, '')   'export?format=pdf'   pdfOpts  var options = {  headers: {  'Authorization': 'Bearer '   ScriptApp.getOAuthToken()  }  }  options = {muteHttpExceptions: true};  var blobresponse = UrlFetchApp.fetch(url, options);  var CandidateName = ss.getRangeByName("Nom.Candidat").getValue();  var blob=blobresponse.getBlob().setName(ss.getName()   " - "   CandidateName  ".pdf" );  var emailAddress=Session.getActiveUser().getEmail();  var signature = Gmail.Users.Settings.SendAs.get("me", emailAddress).signature;   var mess = "Voulez-vous envoyer votre rapport à l'adresse : "   emailAddress;  var ans= Browser.msgBox("Courriel", mess, Browser.Buttons.YES_NO);  if (ans===Browser.Buttons.NO){return;}  var mess="Votre rapport a été envoyé à l'adresse : "   emailAddress;  //var ss=SpreadsheetApp.getActive();  var sheet = ss.getSheetByName("Recherche");  var data = ss.getSheetByName("Données");  const corps = data.getRange("A24:E27").getValues();  const htmlTemplate = HtmlService.createTemplateFromFile("HtmlSigTemplate");  htmlTemplate.corps = corps;  var emailSubject = "Vérifications pré-emploi complétées"  " - "  CandidateName;  const htmlForEmail = htmlTemplate.evaluate().getContent()   "--"   "lt;brgt;"   signature;  console.log(htmlForEmail);  //var emailMessage="Bonjour,"   "nn"   "J’ai le plaisir de vous informer que les vérifications sont complétées pour le candidat indiqué au tableau de résultats pré-emploi suivant:"   "nn"   "Bonne journée !"   "lt;brgt;"   signature;  var shts=ss.getSheets();  GmailApp.sendEmail(  emailAddress,   emailSubject,   corps,  {htmlBody: htmlForEmail},  {attachments:[blob]});  Browser.msgBox("Courriel", mess, Browser.Buttons.OK);  }  

Ответ №1:

Попробуй это:

 GmailApp.sendEmail(emailAddress,emailSubject,corps,{htmlBody:htmlForEmail, attachments:[blob]});  

Я думаю, что у тебя была } неуместная скобка

Комментарии:

1. Ваше предложение решило мою первоначальную проблему. Но вложение в формате pdf, отправленное по электронной почте, не открывается. Есть какие-нибудь предложения ?

2. Извините, что я не так часто использую UrlFetchApp. Вероятно, @Tanaike или TheMaster теперь будут намного больше, чем я.