#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 теперь будут намного больше, чем я.