Имя: Пароль:
1C
1С v8
Написание эл.адреса
,
0 КВАкер
 
11.10.12
14:18
Делаю рассылку по клиентам. Сделал справочник контрагенты, на форме вношу всю нужную информацию. Там есть поле с мылом клиента.  В принципе это просто строка так что туда может вноситься совершенно разная информация. Все работает нормально если адрес правильно написан.Например [email protected]   но если будет написано с ошибками primer@mal тогда при отправке будет выдовать ошибку. Вопрос  в принципе такой, как реализовать лучше проверку по заполнению эл.адреса может кто делал поделиться опытом заранее СПС.
1 DrShad
 
11.10.12
14:20
проверяй на вхождение @ и указание домена
2 Живой Ископаемый
 
11.10.12
14:21
в инете масса регэкспов для проверки мыла на валидность
3 КВАкер
 
11.10.12
14:24
(1)Для домена свой справочник организовать или что то вроде?
4 КВАкер
 
11.10.12
14:24
(2)мож плоха искал(
5 Живой Ископаемый
 
11.10.12
14:25
6 Oleg_Kag
 
11.10.12
14:27
Поиск в строке символов @ и . , сравнение их позиций между собой и позиции точки с длинной строки (электронного адреса).
У меня такого хватило.
Правда сначала еще проверял что бы не было вхождения @ два раза в строку...
7 ДенисЧ
 
11.10.12
14:27
в самом общем случае проверить мыло на валидность можно только одним способом - написать на него письмо и получить ответ...
8 КВАкер
 
11.10.12
14:29
(6)примера кода подрукой нет?
9 Живой Ископаемый
 
11.10.12
14:29
все верно, нужно четко представлять, насколько ты согласен быть параноиком чтобы не дать пользователю сделать что-то дурацкое.
10 acsent
 
11.10.12
14:30
(6) в имени юзера может быть точка
11 Торин
 
11.10.12
14:33
вот так например

   элАдрес = сокрЛП(элАдрес);
   
   ШаблонВыражения = "^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$";
   RegExp = Новый COMОбъект("VBScript.RegExp");
   
   RegExp.IgnoreCase = Ложь;
   RegExp.Global = Истина;
   RegExp.MultiLine = Ложь;
   RegExp.Pattern = ШаблонВыражения;
   
   Если RegExp.Test(элАдрес)=0 тогда
       возврат Ложь;
   Иначе
       возврат Истина;
   конецесли;
12 Торин
 
11.10.12
14:36
тока если почта на кириллическом домене работать не будет...
13 КВАкер
 
11.10.12
14:36
(11) спс за пример а то я чет не разу с регэкспами)) не встричался.
14 КВАкер
 
11.10.12
14:37
(12)ну думаю разберусь).
15 Торин
 
11.10.12
14:38
я тоже думаю разберетесь...
16 Торин
 
11.10.12
14:41
здесь проверяется:
- наличие символов до "собаки"
- наличие домена (он может быть ЛЮбого уровня)
- количество символов в домене 1 уровня (от 2 до 4 - напр. .info)
-  все символы в доменах должны быть латиницей
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.