Pregunta

Estoy usando el momento, se me parte el script si alguien ha llenado en un correo electrónico no válida API incorporado para scripting en contra de cálculo de Google para enviar algunas confirmaciones de reserva, y. Me gustaría que simplemente guardar algunos datos a una lista de clientes que no hayan sido notificados, y luego proceder con bucle a través de las reservas.

Este es mi código actual (simplificado):

// The variables email, subject and msg are populated.
// I've tested that using Browser.msgBox(), and the correct column values are
// found and used

// The script breaks here, if an incorrect email address has been filled in
MailApp.sendEmail(email, subject, msg)

De acuerdo con la documentación href="http://code.google.com/googleapps/appsscript/service_mail.html" los únicos dos métodos de la clase MailApp son a enviar correos electrónicos y comprobar la cuota diaria - nada acerca de la comprobación de direcciones de correo electrónico válidas -. por lo que no se sabe muy bien qué criterios se deben cumplir para la clase de aceptar la solicitud, y por lo tanto no se puede escribir una rutina de validación

¿Fue útil?

Solución

Mantenga la calma, captura y registrar la excepción y continúe:

try {
  // do stuff, including send email
  MailApp.sendEmail(email, subject, msg)
} catch(e) {
  Logger.log("Error with email (" + email + "). " + e);
}

Otros consejos

Si necesita validar direcciones de correo electrónico de antemano, crear una hoja de cálculo en blanco en la unidad. A continuación, ejecute la función a continuación, cambiar el testSheet variables a punto de la hoja de cálculo que ha creado. La función va a hacer una prueba sencilla de expresiones regulares para capturar direcciones malformados, a continuación, comprobar si la dirección es en realidad válida al intentar añadir temporalmente como un espectador en la hoja de cálculo. Si la dirección se puede añadir, debe ser válida.

function validateEmail(email) {
  var re = /\S+@\S+\.\S+/;
  if (!re.test(email)) {
    return false;
  } else {
    var testSheet = SpreadsheetApp.openById(arbitrarySpreadsheetInYourDrive);
    try {
      testSheet.addViewer(email);
    } catch(e) {
      return false;
    }
    testSheet.removeViewer(email);
    return true;
  }
}

Cómo dirección de correo electrónico de validación de JavaScript

scroll top