Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

657
Views
Google App Script: error al adjuntar varias imágenes (error inesperado al obtener el método o la propiedad getFileById en el objeto DriveApp)

Estoy escribiendo un script automatizado para enviar correos desde mis hojas de Google y quiero adjuntar varias imágenes. Con solo una imagen todo funciona perfectamente bien pero cuando quiero adjuntar dos o más, me da este mensaje de error:

Excepción: error inesperado al obtener el método o la propiedad getFileById en el objeto DriveApp.

Este es mi código ahora mismo:

 function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 1; // First row of data to process var numRows = 3; // Number of rows to process // Fetch the range of cells A2:B3 var dataRange = sheet.getRange(startRow, 1, numRows, 5); // Fetch values for each row in the Range. var data = dataRange.getValues(); for (var i in data) { var row = data[i]; var emailAddress = row[0]; // First column var message = row[1]; // Second column var image = DriveApp.getFileById(row[2]).getBlob(); var image2 = DriveApp.getFileById(row[3]).getBlob(); var subject = 'TAYDO 2021 Certificate'; } MailApp.sendEmail({ to:emailAddress, subject:subject, body:message, attachments: [image.next(),image2] }); }

El script de la aplicación tiene todos los permisos necesarios para ejecutar este script, y las hojas, la unidad y todo está bajo la misma cuenta de Google. ¿Alguien puede ayudar? ¡Gracias por adelantado!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Esto funciona para mí:

 function attachimages() { let fldr = DriveApp.getFolderById(gobj.globals.imagesfolderid); let files = fldr.getFiles(); let imgA = []; while(files.hasNext()) { let file = files.next(); if(file.getName().slice(0,3) == 'die') { imgA.push(file.getBlob().getAs('image/jpeg')) } } MailApp.sendEmail({to:'jimesteban@jimesteban.com',subject:'Test Images Attachment',body: 'See Attached Images', attachments:imgA}); }

Mis imágenes se llamaron die1.jpg, die2.jpg... y así sucesivamente, son imágenes de las caras de un dado.

Esto también funcionó para mí:

 function sendEmails() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Sheet0'); const rg = sh.getRange(2, 1, 3, 4); const vs = rg.getValues(); vs.forEach((r, i) => { let emailAddress = r[0]; let message = r[1]; let image1 = DriveApp.getFileById(r[2].toString()).getBlob(); let image2 = DriveApp.getFileById(r[3].toString()).getBlob(); let subject = 'Test Attach Images'; MailApp.sendEmail({ to: emailAddress, subject: subject, body: message, attachments: [image1, image2] }); }); }

Hoja0:

Correo electrónico Mensaje Imagen1 Imagen2
Redactado Mensaje1 Redactado Redactado
Redactado Mensaje2 Redactado Redactado
Redactado Mensaje3 Redactado Redactado
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!