Advertisement
pfelipm

Enviando emails con GAS desde hojas de cálculo

Apr 20th, 2018
3,774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function onEdit_form_reserva_aulas(eventInfo) {
  2.   /* ¿Se ha editado la columna que contiene el desplegable con la opción "Comunicar" */
  3.   if (eventInfo.range.getColumn() == 19 && eventInfo.value == "Comunicar")
  4.   {
  5.     var ss = SpreadsheetApp.getActiveSheet();
  6.     /* fila (respuesta del formulario) afectada */
  7.     var row = eventInfo.range.getRow();
  8.     /* Nos llevamos datos a matriz para tomar los que nos interesen fácilmente */
  9.     var dataRange = ss.getRange(row, 1, 1, 18);
  10.     var data = dataRange.getValues()[0];
  11.        
  12.     /* Construir email de notificación para el solicitante */
  13.     var mensaje = 'Hola, ' + data[1] + ':\n\n';
  14.     /* .toLocaleDateString() y .toLocaleDateString() convierte celdas con fecha y hora a formato local */
  15.     mensaje = mensaje + 'Tu solicitud del ' + data[0].toLocaleDateString()+ ' a las ' + data[0].toLocaleTimeString() + ' ha sido atendida.\n\n';
  16.     mensaje = mensaje + 'Curso: ' + data[8] + '\n';
  17.     mensaje = mensaje + 'Capacidad: ' + data[7] + '\n';
  18.     mensaje = mensaje + 'Docente actual: ' + data[10] + '\n';
  19.     mensaje = mensaje + 'Docente que sustituye: ' + data[11] + '\n';
  20.     mensaje = mensaje + 'Alumno: ' + data[9] + '\n';
  21.     mensaje = mensaje + 'Inicio: ' + data[12].toLocaleDateString() + '\n';
  22.     mensaje = mensaje + 'Fin: ' + data[13].toLocaleDateString() + '\n';
  23.     mensaje = mensaje + 'Horario: ' + data[14] + '\n\n';
  24.     mensaje = mensaje + '### AULA ASIGNADA: ' + data[16] + ' ###';
  25.    
  26.     /* Ahora preparamos cuadro de diálogo de confirmación de la notificación */    
  27.     var ui = SpreadsheetApp.getUi();
  28.     var respuesta = ui.alert('¿Enviar notificación?', 'Se va a enviar el siguiente email a ' + data[1] + ':\n\n' + mensaje , ui.ButtonSet.YES_NO);
  29.     if (respuesta == ui.Button.YES) {
  30.       /* Enviando el correo electrónico: email_destino, asunto, texto del mensaje */
  31.       MailApp.sendEmail(data[1], 'Solicitud reserva ' + data[0].toLocaleDateString() + ' ' + data[0].toLocaleTimeString(), mensaje);
  32.       /* Y de postre marcamos en la columna tratamiento que ya se ha enviado una notificación */
  33.       ss.getRange(row, 18).setValue('Comunicado');
  34.     }  
  35.   }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement