Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 23:05   #21
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,301
По умолчанию

Leximus, а вы проверьте на несуществующем адресе.
Имхо, обработка ошибок блоком try except не только удобная штука, но и вообще обязательный пункт в серьезном проекте.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.05.2012, 23:14   #22
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А как быть с такими именами:
http://www.кц.рф/ru/registrators/
s-andriano вне форума Ответить с цитированием
Старый 11.05.2012, 00:20   #23
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Цитата:
Вот тут бы я паспорилбы!
Тут спорить не о чем.
Ваш велосипед отсеил ноль целых три десятых, от обшего кол-ва, и спрашивается какой смысл было рвать рубаху? А вот от "битых" мыл не спас...

А откуда у вас кривые адреса, может надо бороться не с последствиями?

Последний раз редактировалось =master=; 11.05.2012 в 00:53.
=master= вне форума Ответить с цитированием
Старый 11.05.2012, 00:36   #24
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Leximus

Как лучше всего проверить адрес E-mail на правильность?

...

Регулярными выражениями.
Сочините правильное и будет все ок.


хе-хе.
почитай RFC822... а потом поговорим о "правильном регэкспе"... ((((((Ж

вот например о таком.. :lol:

http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
Rififi вне форума Ответить с цитированием
Старый 11.05.2012, 00:46   #25
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Rififi Это уже тут было, хе-хе
=master= вне форума Ответить с цитированием
Старый 11.05.2012, 09:00   #26
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

ТС просто не любит try..except и хочет вы...нуться простыми if..then..else. Грубо, но верно! Уже 3я страница понаписана, а сути то ноль. ТС хотел поучиться программировать условия? Молодец, справился на 4ку с минусом, но вашу функцию я не буду использовать. Зачем что-то проверять по правилам, кажущимся вам верными, когда это может совершенно точно сделать e-mail сервер? Все равно где-нибудь вы будете не правы. Обработка исключений и всех дел.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 13.05.2012, 08:43   #27
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Вообще-то:

1. В e-mail может быть кириллица. Например: mail@сервер.рф. Или: "Джон Смит"@server.ru. Цитата из RFC: "A quoted string is formed by using normal ASCII quotation marks (") around a string, and it's a way of turning almost any string syntactically to a word. This means for example that a string containing a space (say, Jukka Korpela) becomes acceptable when quoted, in a context where the syntax requires a word."

2. В e-mail может быть точка до @. Например: john.smith@gmail.com. Цитата из RFC: "local-part is a sequence of one or more words separated with full stops (dots, periods), such as jkoo or "Jukka Korpela" or Jukka.Korpela or just.an.example.you.know.".

3. В e-mail может не быть точки после @. Например: john@localhost (чаще всего такие имена встречаются в корпоративных сетях). Цитата из RFC: "Note that a domain name might refer to a particular computer".

Итого: e-mail - это почти произвольная последовательность символов, для которой:

1. Должны быть не пустые две части, разделённые @.
2. e-mail не может начинаться и заканчиваться точкой.
3. В адресе не может быть двух точек подряд, за исключением случаев, когда их заключают в кавычки.

Итого, чтобы проверить корректность e-mail адреса:
1. Отсеять точки в начале и конце.
2. Проверить @ и наличие обеих частей.
3. Пропинговать сервер (вторую часть после @) и убедиться, что на нём висит почтовый сервер (запросом DNS записи MX).

P.S. Насчёт регулярных выражений: http://blogs.msdn.com/b/oldnewthing/...22/603788.aspx (ключевые слова: "Don't make regular expressions do what they're not good at. If you want to match a simple pattern, then match a simple pattern. If you want to do math, then do math.").
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 13.05.2012 в 08:48.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверить правильность E-mail адресса Holzz Общие вопросы Delphi 6 02.08.2011 12:08
Проверить на правильность задачу sam5213 Паскаль, Turbo Pascal, PascalABC.NET 0 23.12.2010 18:28
DateEdit из Библиотеки RX. Как проверить правильность даты? Vit@L Компоненты Delphi 2 22.02.2010 11:11
Как проверить дескриптор (указатель) на правильность? TwiX Общие вопросы Delphi 11 13.02.2010 22:10
MailItemPtr или IMessage как получить e-mail адрес? Iskuzer Общие вопросы C/C++ 0 26.10.2008 14:27