Проверка, если адрес электронной почты действителен в скрипте Apps Google

StackOverflow https://stackoverflow.com/questions/4009085

Вопрос

Я использую встроенные API для сценариев против Google Cleanshies, чтобы отправить некоторые подтверждения бронирования, и в настоящее время мой скрипт ломается, если кто-то заполнил недопустимый адрес электронной почты. Я хотел бы просто сохранить некоторые данные в список гостей, которые не были уведомлены, а затем приступить к цитатам по бронированию.

Это мой текущий код (упрощенный):

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

Согласно документация Единственные два метода на MailApp Класс должны отправлять электронные письма и проверить ежедневную квоту - ничего о проверке действительных адресов электронной почты - поэтому я на самом деле не знаю, какие критерии должны быть выполнены для класса, чтобы принять запрос, и, следовательно, не может написать процедуру проверки.

Это было полезно?

Решение

Будьте спокойны, поймать и воспользуйтесь исключением и продолжим:

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

Другие советы

Если вам нужно заранее подтвердить адреса электронной почты, создайте пустую электронную таблицу в своем диске. Затем запустите функцию ниже, изменив TestSheet. Переменная указывать на созданную вами электронную таблицу. Функция выполнит простой тест Regeex, чтобы поймать неправильные адреса, а затем проверьте, действительно ли адрес действительно, пытаясь временно добавить его в виде просмотра на электронную таблицу. Если адрес может быть добавлен, он должен быть действительным.

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 от Как проверить адрес электронной почты в JavaScript?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top