Domanda

Sto usando il built-in API per lo scripting contro Google Spreadsheets per inviare alcune conferme di prenotazione, e attualmente le mie pause di script se qualcuno ha riempito in una e-mail valido. Mi piacerebbe che solo salvare alcuni dati a una lista di ospiti che non sono stati notificati, e quindi procedere con il ciclo attraverso le prenotazioni.

Questo è il mio codice corrente (semplificato):

// 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)

Secondo il documentazione gli unici due metodi sulla classe MailApp sono da inviare e-mail e controllare la quota giornaliera - nulla circa il controllo per gli indirizzi email validi -. quindi non so davvero quali criteri devono essere soddisfatti per la classe di accettare la richiesta, e quindi non può scrivere una routine di convalida

È stato utile?

Soluzione

Mantenere la calma, cattura e registrare l'eccezione e bagaglio a:

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

Altri suggerimenti

Se avete bisogno di indirizzi e-mail convalidare in anticipo, creare un foglio di calcolo vuoto nell'unità. Quindi, eseguire la funzione qui sotto, la modifica del testSheet variabile per punto al foglio di calcolo che hai creato. La funzione farà un semplice test regex per la cattura di indirizzi malformati, quindi controllare se l'indirizzo è in realtà valida tentando di aggiungere temporaneamente come un visualizzatore sul foglio di calcolo. Se l'indirizzo può essere aggiunto, deve essere valido.

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;
  }
}

come convalidare l'indirizzo di posta elettronica in JavaScript?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top