Question

J'utilise le haut-api pour les scripts contre Google Spreadsheets pour envoyer des confirmations de réservation, et actuellement casse mon script si quelqu'un a rempli un email non valide. Je voudrais simplement à enregistrer des données à une liste de clients qui n'ont pas été notifiés, puis procéder à une boucle à travers les réservations.

Ceci est mon code (simplifié):

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

Selon le les deux seules méthodes de la classe de MailApp sont à envoyer des e-mails et vérifier le quota quotidien - rien vérifier les adresses e-mail valides -. donc je ne sais pas vraiment quels critères doivent être remplies pour que la classe d'accepter la demande, et ne peut donc pas écrire une routine de validation

Était-ce utile?

La solution

Restez calme, attraper et connecter l'exception et continuer:

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

Autres conseils

Si vous devez valider les adresses e-mail au préalable, créer une feuille vierge dans votre lecteur. Ensuite, exécutez la fonction ci-dessous, en changeant le testSheet variable pointer vers la feuille de calcul que vous avez créé. La fonction va faire un simple test regex pour attraper les adresses malformés, vérifiez si l'adresse est en fait valable en essayant d'ajouter temporairement en tant que spectateur sur la feuille de calcul. Si l'adresse peut être ajouté, il doit être valide.

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

Comment valider l'adresse e-mail en JavaScript?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top