[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Валидность e-mail
ga-k
Ребята, помогите с проверкой вводимой почты.

Естественно нужна обычная стандартная проверка (это понятно как сделать), а также проверка на отсеивание адресов типа ???@yandex.ru, ???@mail.ru. В общем нужно, чтобы пользователи вводили только корпоративные адреса.

Прогуглил ничего не нашел. Кто-нить знает?

СпасибО!



Спустя 9 минут, 11 секунд (12.05.2010 - 18:26) FatCat написал(а):
Есть идейки на этот счет:
Запросить страницу домена, и распарсить на предмет слов "войти в почту" и т.д., типичных для публичных мейлеров.

Спустя 3 минуты, 27 секунд (12.05.2010 - 18:30) Guest написал(а):
Спасибо за идею
Т.е. никаких функций в которых можно было бы огранить вводимые данные нет?
Имею ввиду, то что если пользователь ввел info@yandex.ru, чтобы обработчик вернул ошибку "ВВедите корпоративный адрес"

Спустя 15 минут, 2 секунды (12.05.2010 - 18:45) DedMorozzz написал(а):
Да запросто. Сделай как раз такую проверку. Возьми всё что после собачки и сравни с массивом "запрещённых" доменов

Спустя 11 минут, 1 секунда (12.05.2010 - 18:56) Guest написал(а):
Я только начинаю, поэтому и спрашиваю)))

Сравнить с массивом прямо в файле обратчика формы?, там же где и идет проверка на обыную валидность?
if (!preg_match("/^([a-z,._\-,0-9A-Z])+@([a-z,._\-,0-9A-Z])+\.([a-z,.,A-Z])+$/", $mail))

Спустя 10 минут, 58 секунд (12.05.2010 - 19:07) jetistyum написал(а):
Парсить это слишком - всех фраз не узнаешь, а если составлять список - он будет равен просто списку доменных имен почтовиков общего пользования, тем более например любой сайт с авторизацией попросит ввести логин пароль.

выход - набить базу "черных доменов"

Спустя 12 часов, 8 минут, 6 секунд (13.05.2010 - 07:15) Kuzya написал(а):
На регулярные выражения в таких ситуациях лучше не заглядываться. Слишком огромные они получаются.
DedMorozzz и jetistyum правы. Берём создаём текстовик с именами доменов бесплатных сервисов. Например:
Цитата
yandex.ru
mail.ru
inbex.ru
list.ru
...

Как только пользователь ввёл email, разбиваем его explode`ом по знаку "@". Получаем массив, где во второй ячейке лежит имя сервера. Загружаем функцией file список запрещённых серверов (чтоб получился сразу массив) и функцией in_array() проверяем наличие введённого сервера в этом списке.
P.S. А лучше сразу разрешить ввод только поределённых почтовых серверов. Это будет эффективнее.

Спустя 8 часов, 27 минут, 9 секунд (13.05.2010 - 15:42) FatCat написал(а):
Чтобы не налетать на третьих доменах типа AnyName@login.domen.com - такие "многоадресные" ящики предоставлял в свое время бизлэнд, наверняка подобное можно найти и сейчас - отсекать сабдомены. Например так:
$domen = substr( $_POST['mail'], (strpos($_POST['mail'],"@")+1) );
$domen = explode(".",$domen);
$domen = $domen[(count($domen)-2)].".".$domen[(count($domen)-1)];

Спустя 19 минут, 16 секунд (13.05.2010 - 16:01) jetistyum написал(а):
а что если domain.com.ua или domain.crimea.ua
тут уже не катит..

Спустя 11 минут, 43 секунды (13.05.2010 - 16:13) Kuzya написал(а):
Всё сводится к тому, что проще разрешить регистрацию с адресами чётко определённых серверов smile.gif

Спустя 5 минут, 59 секунд (13.05.2010 - 16:19) jetistyum написал(а):
мне кажется что составить список всех валидных корпоративных доменов сложнее, чем список почтовиков.
можно еще валидировать вручную каждого участника, если уж серьезный такой проект...
а ограничения точно обоснованы?

Спустя 8 минут, 39 секунд (13.05.2010 - 16:28) DedMorozzz написал(а):
иль я чего-то не допонимаю или ТС хотел
Цитата
отсеивание адресов типа ???@yandex.ru, ???@mail.ru
Причём тут @login.domen.com?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.