Что нам для этого нужно? Подключение к интеренету, любимый бразуер, и конечно же учетная запись Google.
Итак, поехали:
- Создаем новую форму с необходимыми колонками. Для примера рассмотрим, что у нас есть три колонки: Время, Имя, Мейл. Необходимо чтобы имя скрипта и имя функции в скрипте, который приведён ниже, совпадали.
- Теперь переходим в редактор скриптов из меню инструменты "Select "Tools" => "Script Editor" и добавляем в него новый следующий скрипт:
function EmailConfirmation () {
var sheetname = "Sheet1"
var emailColumnNumber = 2
var nameColumnNumber = 3
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetname);
if (sheet.getRange(sheet.getMaxRows(),1).getValue() != "") {
var lastrow = sheet.getMaxRows()
} else {
var count = 0
for (var i = 0; i < sheet.getMaxRows(); i++) {
if (sheet.getRange(sheet.getMaxRows()-i,1).getValue() != "") {
var lastrow = sheet.getMaxRows()-i
break;
}
}
}
var email = sheet.getRange(lastrow, emailColumnNumber).getValue();
var emailPattern = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|aero|asia|biz|com|coop|edu|gov|info|int|jobs|mil|mobi|name|museum|name|net|org|pro|tel|travel)\b/;
var validEmailAddress = emailPattern.test(email);
var name = sheet.getRange(lastrow, emailColumnNumber).getValue();
if (validEmailAddress == true) {
var message = ""
+ "Вы только зарегистрировались на i-ю встречу QA Club Kiev"
+ "
" + "Ваше имя: " + name + "
"
+ "
}
}
В переменной sheetname указано имя страницы, по умолчанию это "Sheet1". Поэтому, если форма не многостраничная, и страницы, не были переименованы, то на этом шаге всё в порядке. Нужно лишь перепроверить.
В переменных emailColumnNumber и nameColumnNumber необходимо указать номера, соответствующих колонок. Для нашего случая это В = 2 и С = 3.
Теперь нужно сохранить почти готовый к работе скрипт и добавить его в триггеры (не забываем переименовать скрипт). Для этого переходим в меню триггеры "Triggers" --> "Current script's triggers" --> "Click to add a script" и выбираем только что сохранённый скрипт. Далее выбираем "From spreadsheet" и событие "On form submit". Снова сохраняем изменения.
Теперь можно зарегистрироваться с валидными данными, и проверить что пришло подтверждение на указнный при регистрации адрес.
В дальнейшем тему и тело письма можно изменить уже исходя из необходимости и целей.
Круто, попробую...
ОтветитьУдалитьЯ б не сильно с крутым регепспом заморачивался :)
ОтветитьУдалитьДостаточно проверить наличие собаки, я думаю. Этот регексп
не пропустит:
awesometester@i.ua
и все другие имейлы на однобуквенных доменах
http://regexpal.com/
http://i.imgur.com/pyFcW.png
Можно и не заморачиваться, конечно. Реализовать уже как душе угодно:) А
ОтветитьУдалитьhttp://regexpal.com/ удобный тул.
Ну, в принципе можно и заморачиваться :) Но, тут дело в том, что этот регексп
ОтветитьУдалитьне пропустит еще и следующие имейлы:
Me@qaclubkiev.comme@QaClubKiev.comawesometester@i.uaawesometester@yandex.ruawesometester@mail.ru
Вот этот вроде работает нормально:
http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
Но, об него мозг сломать можно :)
Да, неплохо:) На досуге нужно поковыряться)))
ОтветитьУдалитьДоброе время суток! Я в коде ничего не понимаю. Скопировал, вставил, выдает ошибку Незавершенный строковый литерал. (line 30, file "Код").
ОтветитьУдалитьПомогите исправить плиз!!!! Очень надо!