Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

656
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda