Проверка правильности е-mail адреса с проверкой существования домена
Автор: Dimka Maslov
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Проверка правильности е-mail адреса с проверкой существования домена
Функция проверяет как общий синтаксис написания адреса
(обязателен символ @, имя пользователя должно содержать
только разрешённые символы) а также и определяет,
существует ли домен, указанный в адресе. Функция
возвращает True, если адрес записан правильно и домен
существует, False в случае ошибки. Недостатком такой
функции является требование наличия соединения с
интернетом, а также замедление работы при указании
в адресе несуществующего домена.
Зависит от функции CheckDomain, приведённой здесь:
http://delphibase.endimus.ru?action=viewfunc&id=10258
Зависимости: SysUtils, WinSock, UBPFD.CheckDomain
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 3 июля 2002 г.
***************************************************** }
function CheckEmailAddr(Addr: string): Boolean;
var
P: Integer;
User, Domain: string;
i: Integer;
begin
Result := False;
Addr := AnsiLowerCase(Addr);
P := Pos('@', Addr);
if P = 0 then
Exit;
User := Copy(Addr, 1, P - 1);
Domain := Copy(Addr, P + 1, Length(Addr) - P);
for i := 1 to Length(User) do
if not (User[i] in ['a'..'z', '0'..'9', '.', '-', '_']) then
Exit;
Result := CheckDomain('www.' + Domain);
if not Result then
Result := CheckDomain(Domain);
end;
|