Форум: "Сети";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
ВнизКак проверить, существует ли определенный e-mail или нет? Найти похожие ветки
← →
Belg (2002-06-18 07:31) [0]Заранее спасибо!
← →
MARcoDEN (2002-06-18 07:32) [1]Вот код функции:
function IsValidEmail(const Value: string): boolean;
function CheckAllowed(const s: string): boolean;
var
i: integer;
begin
Result:= false;
for i:= 1 to Length(s) do
begin
{ недопустимый символ в s - значит недопустимый адрес }
if not (s[i] in ["a".."z", "A".."Z", "0".."9", "_", "-", "."]) then
Exit;
end;
Result:= true;
end;
var
i: integer;
namePart, serverPart: string;
begin // начало выполнения IsValidEmail
Result:= false;
i:= Pos("@", Value);
if i = 0 then
Exit;
namePart:= Copy(Value, 1, i - 1);
serverPart:= Copy(Value, i + 1, Length(Value));
// @ не указано имя имя или сервер не указаны; минимально для сервера. "a.com"
if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then
Exit;
i:= Pos(".", serverPart);
// должно иметь точку и как минимум три знака от конца
if (i = 0) or (i > (Length(serverPart) - 2)) then
Exit;
Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
end;
← →
Malder (2002-06-18 13:27) [2]Хех. Во первых, имелось в виду немного не то. Тут идет проверка на допустимые символы в адресе. А ведь даже если все верно - такого адреса может не существовать. Проверка на существование e-mail вообще невозможна.
Во вторых, здесь проверка на правильность e-mail также осуществлена неверно. Хотя бы то, что в адрес e-mail вовсе не обязательно должен входить знак "@".
← →
Ocean (2002-06-21 11:31) [3]Вообще-то не знаю, но пришла мысль такая. Попробовать залогиниться по SMTP на почтовый сервер с этим именем, т.е. тем, что идет до "@". Понимаю, что есть еще алиасы, не подскажу сразу, как точно определить название сервера, но - тема для размышления.
← →
Anatoly Podgoretsky (2002-06-21 11:42) [4]Послать письмо, вреоятность определения близка к 100%, остальные методы вероятность стремится к нулю.
← →
VDen (2002-06-21 14:08) [5]Проверить можно лишь существование соответствующего сервера.
Так, fgh@kjl.ytu окажется адресом неправильным.
Но вот для адреса no_such_account@mail.ru проверка без контакта с адресатом скорее всего невозможна.
← →
S@shka (2002-06-25 17:25) [6]Вопрос весьма и весьма интересен.
один из вариантов это как уже упоминули залогиниться
однако некоторые сервера могут этого и не разрешать.
Вариант 2. создаешь себе ящик аля@newmail.ru
и от его имени шлешь мыло естественно если мыло ушло в никуда вернется сообщение MailDelivery failed и по ним и можно смотреть что реально а что нет.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c