如何测试某一个电子邮件地址是否存在?(50分)

  • 主题发起人 主题发起人 11830
  • 开始时间 开始时间
1

11830

Unregistered / Unconfirmed
GUEST, unregistred user!
如何测试某一个电子邮件地址是否存在?
如11830@email.com.cn存在
1183982384247089asfiajsf@email.com.cn不存在
 
这太简单了!
 
太好了,快告诉我吧,我把分都给你
 
利用DELPHI写一个程序即可,让我写完再给大家看看。
 
快点吧,我快等不及了
 
验证Email地址是否有效如果有效则返回True,否则为False;

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
if not (s in ['a'..'z','A'..'Z','0'..'9','_','-','.']) then
Exit;
end;
Result:= true;
end;

var
i: integer;
namePart, serverPart: string;
begin
Result:= false;
i:= Pos('@', Value);
if (i = 0) or (pos('..', Value) > 0) then
Exit;
namePart:= Copy(Value, 1, i - 1);
serverPart:= Copy(Value, i + 1, Length(Value));
if (Length(namePart) = 0)
or ((Length(serverPart) < 4))
then Exit;
i:= Pos('.', serverPart);
if (i = 0) or (i >= (Length(serverPart) - 2)) then
Exit;
Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
end;
 
如果判断这个邮件服务器是否存在还可以。你发送一条请求这个服务器的mx记录,看看
有返回ip地址,如果有,说明这个邮件服务器是存在的
然后再判断这个用户是否存在,判断用户存不存在就比较麻烦,
因为有的邮件服务器不给你马上提供是否存不存在这个用户的错误,
而是以退信形式告诉你不存在这个用户。不知道还有没有什么办法?
 
那你只能发份信测试测试了
 
请问如何测试某一用户存在,如 11830@email.com.cn是一定存在的。.
 
可以用NMSMTP控件试试,随便发送一个邮件,就可以返回是否有这样的电子邮件了。
 
发信也未必知道是否存在。该问题无解。
 
我想能不能通时 pop3控件常识的 收某一个信箱的信,如果需要密码就正
明这个信箱存在。但我现在不知道在不输入的密码的情况下,邮件服务器
是否会返回一个需要密码的消息。.
 
收集所有EMAIL的POP地址。当登陆时,若用户不存在会有错误信息返回的,可用POP3控件完成
 
太感谢了,我 终于 有希望了,能说的再具体一点吗?如怎样 捕捉 pop3控件
返回的错误等。
 
不行,使用Pop3控件也不行,因为大部分的邮件服务器是不会告诉你这个用户是否存在的。
你发送user 命令之后,不管这个用户存不存在,服务器都不会返回错误。之后当
你发送 pass命令之后,如果用户不存在,服务器会返回错误给你,
如果用户存在,那么密码错误,服务器也会返回错误给你
,所以无法确定用户存不存在,所以你这个问题是无解的。
 
一定有办法的!不然收集某一邮件服务器下所有用户的邮件地址的软件是怎么做出来的?
 
你可以使用MailCaptor软件,搜索WEB服务器或SMTP服务器,可惜是测试版。
http://delphi.mychangshu.com/downfile.asp?ID=184&location=setup.exe
 
它用的是什么方法呢?
 
通常使用finger查询
 
后退
顶部