Frage

Ich bin mit dem eingebauten in api für Scripting gegen Google Tabellen einige Buchungsbestätigungen zu senden, und mein Skript bricht zur Zeit, wenn jemand in einer ungültigen E-Mail gefüllt hat. Ich würde es gerne einfach speichern einige Daten in eine Liste der Gäste, die nicht gemeldet haben, und dann gehen Sie durch die Buchungen mit Looping.

Dies ist mein aktueller Code (vereinfachte):

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

Nach der Dokumentation die nur zwei Methoden auf der MailApp Klasse sind E-Mails senden und überprüfen Sie die tägliche Quote - nichts über die Überprüfung für gültige E-Mail-Adressen -. so dass ich nicht wirklich wissen, welche Kriterien für die Klasse erfüllt sein müssen, die Anfrage zu akzeptieren und somit keine Validierungsroutine schreiben

War es hilfreich?

Lösung

Bleiben Sie ruhig, zu fangen und melden Sie sich die Ausnahme und tragen auf:

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

Andere Tipps

Wenn Sie im Voraus zu bestätigen E-Mail-Adressen benötigen, eine leere Tabelle in Ihrer Festplatte erstellen. Führen Sie dann die Funktion unten, die Änderung der testSheet Variable verweisen auf die Tabelle, die Sie erstellt haben. Die Funktion wird einen einfachen regex Test tut fehlerhafte Adressen zu fangen, dann überprüfen Sie, ob die Adresse durch den Versuch, tatsächlich gültig ist vorübergehend in der Kalkulationstabelle als Zuschauer hinzuzufügen. Wenn die Adresse hinzugefügt werden kann, muss sie gültig sein.

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

regex von Wie Validate E-Mail-Adresse in JavaScript?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top