Проверка правильности адреса электронной почты в скрипте Служб Google - PullRequest
2 голосов
/ 24 октября 2010

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

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

// 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 есть только два метода - отправлять электронные письма и проверять ежедневную квоту - ничего о проверке действительных адресов электронной почты - поэтому я не знаю, по каким критериям должно быть выполнено, чтобы класс принял запрос, и поэтому не может написать процедуру проверки.

Ответы [ 2 ]

3 голосов
/ 05 октября 2017

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

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

регулярное выражение от Как проверить адрес электронной почты в JavaScript?

2 голосов
/ 18 мая 2012

Сохраняйте спокойствие, поймайте и зарегистрируйте исключение и продолжайте:

try {
  // do stuff, including send email
  MailApp.sendEmail(email, subject, msg)
} catch(e) {
  Logger.log("Error with email (" + email + "). " + e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...