Script envoi de mail

Bonjour,

j'utilise le script suivant

function myFunction() { const doc=SpreadsheetApp.getActive(); const docID='planning transporteurs'; const feuilleID='stbm'; const emailadress='expeditions.soca3@socamaine.leclerc'; const dossier=DriveApp.getFolderById('1uejozPOWWRQvuRzNL1QUFKzPaT7tWrv9'); const d=Utilities.formatDate(new Date(),"GMT+1","yyyyMMdd"); const fichier='stbm'+"_"+d+".pdf"; const objet='PLANNING DU JOUR'; const corps='<p>bonjour</p>Vous trouverez en pièce jointe le planning du jour<p>Cordialement.'; const url='url de ma feuille'; const exportoptions='exportFormat=pdf&format=pdf'+'&size=A4'+'&portrait=true'+'&fitw=false'+'&sheetnames=false&printtitle=false'+'&pagenumbers=false&gridlines=false'&'fzr=false'+'&gid='+feuilleID; var params={method:"GET",headers:{"authorization":"bearer "+ScriptApp.getOAuthToken()}}; var reponse=UrlFetchApp.fetch(url+exportoptions,params).getBlob(); //envoi email avec fichier avec fichier attacher GmailApp.sendEmail(emailadress,objet,corps,{htmlBody:corps,attachments:[{fileName:fichier,content:reponse.getBytes(),mimeType:"application/pdf"}]}); // sauvegarde du fichier dossier.createFile(reponse.setName(fichier));}

Le problème dans ce script c'est la pièce jointe que je reçois dans mon mail est un HTML en pdf et non mon tableau en pdf.

pouvez vous m'aider.

Bonjour,

Avant de vous répondre sur le fond, 2 petits points :

- attention à anonymiser vos données avant de les partager

- vous pouvez en écrivant un message indiquer que vous allez entrer du code, ce qui permet de gagner en lisibilité.

Concernant le fond maintenant, personnellement afin d'exporter une page Google Sheet en PJ d'un mail j'utilise ce code :

function savePDF()
{
// Selection de la feuille à PDFiser
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

//générer URL de la feuille
    var ssUrl = ss.getUrl();
    var sheetId= sheet.getSheetId();

// paramétrage du PDF, les marges sont à modifier au cas par cas.
    var url = ssUrl.replace(/\/edit.*$/,'') 
      + '/export?exportformat=pdf&format=pdf'
      + '&size=A4'
      + '&portrait=true'
      + '&fitw=true'
      + '&top_margin=-0.95'
      + '&bottom_margin=0.50'          
      + '&left_margin=0.50'             
      + '&right_margin=0.50'           
      + '&sheetnames=false'
      + '&printtitle=false'
      + '&pagenum=false'
      + '&gridlines=false'
      + '&fzr=FALSE'
      + '&gid='+sheetId;

  // Concaténons le tout (+ le nom de mon PDF est une date qui se situe en cellule A6, c'est à modifier dans votre cas
  var docName =  sheet.getRange('A6').getValue();
// CRÉER LE PDF A PARTIR DE L'URL
  var token = ScriptApp.getOAuthToken();
  var docurl = UrlFetchApp.fetch(url, { headers: { 'Authorization': 'Bearer ' +  token } });
  var pdf = docurl.getAs('application/pdf').setName(docName);
  var demandeur = 'nom de la personne / liste de diffusion';

  var file = DriveApp.createFile(pdf);

  var folder = DriveApp.getFolderById("xxxxxxxxxx");// > adresse du dossier Drive
  var finalFile = file.moveTo(folder);
  var docUrl = finalFile.getUrl();
  var demandeurEmail = sheet.getRange('F5').getValue();// mon mail cible est en F5, à changer dans votre cas
  var message = "Bonjour"+"<p>Ci-joint le "+docName+"</p>"+"<a href='"+docUrl+"'>Cliquez ici pour ouvrir le recap.</a>";
MailApp.sendEmail({to:demandeurEmail , subject: ""+docName, htmlBody:message}) ;

 var ui = SpreadsheetApp.getUi(); 
 ui.alert("Le "+ docName +" a bien été créé\n et été envoyé à "+ demandeur +" ");
}
Rechercher des sujets similaires à "script envoi mail"