Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

314
Visualizações
Google Aps Script: script para enviar correos electrónicos automáticos en la respuesta de un nuevo formulario envía correos electrónicos nuevos y anteriores

Escribí un script para enviar tipos específicos de correos electrónicos según el tipo de información enviada a través de los formularios de Google. Se activa al enviar el formulario. Sin embargo, cuando se realiza un nuevo envío, se envía el correo electrónico correcto para ese envío, pero también el último correo electrónico que se envió. (Si eso tiene sentido). Entonces recibo el nuevo correo electrónico (que quiero), pero una repetición del último correo electrónico que se envió (no deseado). ¿Cómo hago para enviar solo el nuevo correo electrónico?

 function checkPurpose() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Mostrecent").getRange("C3"); var purpose = sheet.getValue(); Utilities.sleep(2000); if (purpose === "Agent Information Change"){ var agentSheet = ss.getSheetByName("Agentinfo"); var a = agentSheet.getLastRow(); for (var b = 2; b < a + 1; b++ ) { var emailAddress = agentSheet.getRange(b,1).getValue(); var subject = agentSheet.getRange(b,2).getValue(); var message = agentSheet.getRange(b,3).getValue(); MailApp.sendEmail(emailAddress, subject, message); } } else if (purpose === "Manager Information Change"){ var managerSheet = ss.getSheetByName("Managerinfo"); var x = managerSheet.getLastRow(); for (var y = 2; y < x + 1 ; y++) { var emailAddress2 = managerSheet.getRange(y,1).getValue(); var subject2 = managerSheet.getRange(y,2).getValue(); var message2 = managerSheet.getRange(y,3).getValue(); MailApp.sendEmail(emailAddress2, subject2, message2); } } else if (purpose === "Agent Onboard"){ var onboardSheet = ss.getSheetByName("Agentonboard"); var n = onboardSheet.getLastRow(); for (var i = 2; i < n + 1 ; i++ ) { var emailAddress3 = onboardSheet.getRange(i,4).getValue(); var subject3 = onboardSheet.getRange(i,5).getValue(); var message3 = onboardSheet.getRange(i,6).getValue(); MailApp.sendEmail(emailAddress3, subject3, message3); } } }

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Me encontré con este mismo problema en el pasado, puedes probar esto:

Es posible que desee agregar una columna adicional a su hoja que contenga una cadena como: 'sí', esa cadena se agregará después de que se envíe un correo electrónico.

ingrese la descripción de la imagen aquí

Lo evaluaremos cada vez que se envíe un correo electrónico para que no se repitan.

Usando una variable global como:

 var isMailSent = 'Yes';

Usando el último else if en su código:

 var onboardSheet = ss.getSheetByName("Agentonboard"); var n = onboardSheet.getLastRow(); var startRow = 2; for (var i = 2; i < n + 1; i++) { if (isMailSent !== 'Yes' && n[1] !== "") { //if the row for colum mailSent does not contain 'YES' and it is not empty proceed with the following var emailAddress3 = onboardSheet.getRange(i, 4).getValue(); var subject3 = onboardSheet.getRange(i, 5).getValue(); var message3 = onboardSheet.getRange(i, 6).getValue(); MailApp.sendEmail(emailAddress3, subject3, message3); sheet.getRange(startRow + i, 8).setValue(isMailSent); //Here 8 is whe column number you added where isMailSent = 'Yes'; will be inserted } } }

Algo a considerar:

Veo que estás repitiendo mucho código en la muestra compartida como:

 var emailAddress = agentSheet.getRange(b,1).getValue(); var subject = agentSheet.getRange(b,2).getValue(); var message = agentSheet.getRange(b,3).getValue(); MailApp.sendEmail(emailAddress, subject, message);

Es posible que desee incluir todo eso en una función para llamar a la función en lugar de escribir todo el código. Si ayuda, aquí hay una pequeña representación de lo que tengo (esa incluye HTML, así que ignóralo)

Descargo de responsabilidad:

No soy un profesional en la codificación, por lo que si se puede mejorar lo anterior, estoy abierto a recibir comentarios.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda