with sendemail scripts script mailapp google example ejemplos docs developers developer apps app email text google-apps-script carriage-return

scripts - mailapp.sendemail cc example



Alternativa o soluciĆ³n para "/ n" en google script (2)

Una solución es usar el método GmailApp.sendEmail en lugar del método MailApp.sendEmail . El sendMail de sendMail maneja /n correctamente.

La primera vez formulé una pregunta aquí (he estado buscando antes de publicarla), así que por favor tenga en cuenta los posibles errores que haya cometido.

Para el problema: actualmente estoy trabajando en un sitio web con sitios de Google. Hice algunos formularios allí y estoy agregando un script a esos formularios para que la información ingresada se envíe por correo electrónico una vez que se envíe el formulario y se guarde en la hoja de cálculo, que funciona bien, pero el mensaje del correo electrónico que llega está bastante desordenado.

Todas las expresiones "/ n" en el código simplemente se ignoran. Obtuve la base para el código de www.labnol.org y lo edité un poco.

Para empezar, el código:

function sendFormByEmail(e) { //I took the two mail addresses out here, but they are working in the original var email = "first mail address"; var email2 = "second mail address"; var subject = "New Announce your visit form submitted"; var s = SpreadsheetApp.getActiveSheet(); var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0]; var message = "A new ''Announce your visit'' form has been submitted on the website: /n/n" + "/n/n"; for(var i in headers) { message = message + "/n /n"; message += headers[i] + '' = ''+ e.namedValues[headers[i]].toString() + "/n/n"; } var senderEmail = e.namedValues[headers[6]].toString(); MailApp.sendEmail(email, senderEmail, subject, message); MailApp.sendEmail(email2, senderEmail, subject, message); }

Como puede ver, he estado buscando mucho para colocar el / n en diferentes lugares como alternativa, aunque se ignora sin importar dónde lo coloque.

el bucle original se veía así:

for(var i in headers) message += headers[i] + '' = ''+ e.namedValues[headers[i]].toString() + "/n/n";

Antes de hacer algunas modificaciones al código funcionó bien. Pero aunque no toqué estas líneas, ni ninguna de las otras partes del código que contribuyen a obtener el mensaje, / n dejó de funcionar. Seguí intentando arreglarlo (como muestra el error / n que se muestra arriba), pero sin éxito.

Así que ahora estoy tratando de encontrar una forma de solucionarlos, o al menos una solución alternativa, y espero que cualquiera de ustedes sepa lo que está pasando con los / ns o cómo hacer que funcionen nuevamente.

Gracias por adelantado.

PD: si necesita más información, simplemente hágamelo saber


Aquí hay una solución alternativa a lo que está haciendo: HtmlTemplate

Algunos ejemplos de código:

function sendEmailWithTemplateExample() { var t = HtmlService.createTemplateFromFile("body.html"); t.someValue = "some dynamic value"; var emailBody = t.evaluate().getContent(); MailApp.sendEmail("[email protected]", "test email", emailBody); }

Y aquí está el código de plantilla correspondiente en body.html (Haga clic en "Archivo -> Nuevo -> Archivo Html"):

Body goes here <?= someValue ?>