给定一个邮件地址,如何才能确定它是存在的?200分,在线等侍!!!(200分)

  • 主题发起人 主题发起人 海天子
  • 开始时间 开始时间

海天子

Unregistered / Unconfirmed
GUEST, unregistred user!
给定一个邮件地址,如何才能确定它是存在的?200分,在线等侍!!!
 
用这个邮件地址登录到服务器,它会告诉你是否存在。
 
可以我不知密码怎么登录呀
 
发个特快专递试试
 
>>发个特快专递试试
只有这个办法了
 
SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器
smtp relay 就是指“邮件特快专递”,不通过本地邮件服务器,直接将邮件发送到对方的邮件服务器
delphi上有例子Indy,自己看看吧
 
用smtp登录到目标服务器上,发一个rcpt to:对方地址,返回正确就是有了。这只能是在没有esmtp的服务器才可以,如果像新浪这样需要验证的...你有账号也行。
 
在后台试着连
 
登陆到那个地址
 
TO 魔鬼大师 怎么连
TO aircraft 怎么登录
我有很多邮件地址要校验呀
 
估计你是想做个Eamil地址搜索器吧!
 
使用DNS查找到邮件地址对应的MX邮件服务器,使用平常使用SMTP命令就可以检测到是否
有无此邮件地址
>helo xxxx
<250 ok
>mail from:<dd@xxx.com>
<250 ok
>rcpt to:<???@???.com>
<250 ok---------有此???的邮件地址
>rcpt to:<***@???.com>
>500 Err----无
。。。
重复下去

我以前做过此邮件检测和直接发送的程序,是各半成品,不想再做了,发垃圾邮件对大家
没有什么好处,而且,老外的各个公司开始有组织的反对垃圾邮件。

 
楼上说的是
 
To iDevCN
我是新手,这些命令用程序写怎么写呀,我不会!!
 
E-Mail Address validation

3/9/01 2:33:13 PM by Administrator

E-Mail Address validation




function IsEMail(EMail: String): Boolean;

var

s: String;

ETpos: Integer;

begin

ETpos:= pos('@'

EMail);

if ETpos > 1 then

begin

s:= copy(EMail

ETpos+1

Length(EMail));

if (pos('.'

s) > 1) and (pos('.'

s) < length(s)) then

Result:= true else Result:= false;

end

else

Result:= false;

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

if isemail(Edit1.Text) then

begin

ShowMessage('eMail-Adresse!');

end;

end;
 
function ValidEmail(email: string): boolean;
const
atom_chars = [#33..#255] - ['(', ')', '<', '>', '@', ',', ';', ':',
'/', '/', '"', '.', '[', ']', #127];
quoted_string_chars = [#0..#255] - ['"', #13, '/'];
letters = ['A'..'Z', 'a'..'z'];
letters_digits = ['0'..'9', 'A'..'Z', 'a'..'z'];
subdomain_chars = ['-', '0'..'9', 'A'..'Z', 'a'..'z'];
type
States = (STATE_BEGIN, STATE_ATOM, STATE_QTEXT, STATE_QCHAR,
STATE_QUOTE, STATE_LOCAL_PERIOD, STATE_EXPECTING_SUBDOMAIN,
STATE_SUBDOMAIN, STATE_HYPHEN);
var
State: States;
i, n, subdomains: integer;
c: char;
begin
State := STATE_BEGIN;
n := Length(email);
i := 1;
subdomains := 1;
while (i <= n) do begin
c := email;
case State of
STATE_BEGIN:
if c in atom_chars then
State := STATE_ATOM
else if c = '"' then
State := STATE_QTEXT
else
break;
STATE_ATOM:
if c = '@' then
State := STATE_EXPECTING_SUBDOMAIN
else if c = '.' then
State := STATE_LOCAL_PERIOD
else if not (c in atom_chars) then
break;
STATE_QTEXT:
if c = '/' then
State := STATE_QCHAR
else if c = '"' then
State := STATE_QUOTE
else if not (c in quoted_string_chars) then
break;
STATE_QCHAR:
State := STATE_QTEXT;
STATE_QUOTE:
if c = '@' then
State := STATE_EXPECTING_SUBDOMAIN
else if c = '.' then
State := STATE_LOCAL_PERIOD
else
break;
STATE_LOCAL_PERIOD:
if c in atom_chars then
State := STATE_ATOM
else if c = '"' then
State := STATE_QTEXT
else
break;
STATE_EXPECTING_SUBDOMAIN:
if c in letters then
State := STATE_SUBDOMAIN
else
break;
STATE_SUBDOMAIN:
if c = '.' then begin
inc(subdomains);
State := STATE_EXPECTING_SUBDOMAIN
end else if c = '-' then
State := STATE_HYPHEN
else if not (c in letters_digits) then
break;
STATE_HYPHEN:
if c in letters_digits then
State := STATE_SUBDOMAIN
else if c <> '-' then
break;
end;
inc(i);
end;
if i <= n then
Result := False
else
Result := (State = STATE_SUBDOMAIN) and (subdomains >= 2);
end;

 
同志们,我要的不是合法性呀,我在的是存在性呀!!!!!!!!
 
用SAKMAil的POP控件去尝试登录,用户名(不用说了吧),口令随便填。截获POP控件的SakPOP3.ReplyCode。合法的和不合法的用户名,POP Server返回数值不同。
 
直接使用Telnet smtp.163.com 25命令就可以连接到163.com的SMTP服务器上,使用命令方式就可以验证了。
 
请看这里
http://www.delphibbs.com/delphibbs/dispq.asp?lid=642512
 
后退
顶部