Страница 1 из 1

Проверка мыла на валидность средствами Clarion

Добавлено: 13 Декабрь 2005, 14:40
Admin
Срочно нужна функция для проверки валидности мыла.
Желательно на чистом Кларионе или накрайняк на Windows API.
Соответствие RFC желательно! :)

Заранее благодарю за ответы!

Добавлено: 13 Декабрь 2005, 15:50
Игорь Столяров
См. Help ...

!Regular expression for testing an email address as valid.

!1. The name portion can contain the characters: A-Z 0-9 -._

!2. Then must have an @
!3. Then repeating groups containing: A-Z 0-9 -._
!4. A period and 2, 3, 4 letters

RV = MATCH(UPPER(CLIP(eMailAddr)),|
'^[-A-Z0-9._]+@{{[-A-Z0-9._]+.}+[A-Z][A-Z][A-Z]?[A-Z]?$', Match:Regular)

Добавлено: 13 Декабрь 2005, 16:13
Admin
Посмотрим...
Правда почитав инфо понял что проверить мыло нереально, т.к. во первых его может и не существовать и проверка не гарантирует что его читают.
+ Многие почтовики (сервера) позволяют создавать неправильные адреса, те которые не соответствуют RFC822 ...

Кстати для смеха посмотрите этот регэксп: http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
Явно MATCH на нем упадет, если и удастся его будет подогнать под Кларион :)

Добавлено: 13 Декабрь 2005, 16:27
Игорь Столяров
В идеале проверить мыло на все 100% наверно нельзя даже в теории ... Если немного не в тему вопроса, то я пользуюсь функцией из Catalyst Tools - в общем-то вполне достаточно для работы:

INT SmtpVerifyAddress(
HCLIENT hClient, // handle to the client session
LPCTSTR lpszAddress, // pointer to the address to verify
LPTSTR lpszBuffer, // pointer to buffer for the verified address
INT nMaxLength // maximum length of the buffer
);