如何验证邮件服务器(100分)

  • 主题发起人 主题发起人 雏鹰
  • 开始时间 开始时间

雏鹰

Unregistered / Unconfirmed
GUEST, unregistred user!
用ICS、SAVEMAIL、或FASTNET的SMTP控件如何实现对邮件服务器的验证?
SMTP的verify只提供了UserID而无PassWord属性,而且verify(UserID)验证总是失败。
如果还有别的方法实现邮件的发送与接收,(现系统,需要实现从数据库中取出数据,
统计后直接通过邮件发送到目的地址)请告知。我将十分感激!!!!!!
 
自己修改源码么,修改SakMail就可以了。至于AUTH的详细情况,
看rfc2554。
 
delphi自带的程序中就有例程,你可以看delphi/demo/fastnet/
procedure TForm1.Button7Click(Sender: TObject);
begin
NMSMTP1.ExpandList(Edit11.Text);
end;

procedure TForm1.NMSMTP1MailListReturn(MailAddress: String);
begin
Memo2.Lines.Add(MailAddress);
end;

procedure TForm1.NMSMTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('Connection Failed');
end;

procedure TForm1.NMSMTP1ConnectionRequired(var handled: Boolean);
begin
If MessageDlg('Connection Required. Connect?', mtConfirmation, mbOkCancel, 0) = mrOk then
Begin
Handled := TRUE;
NMSMTP1.Connect;
End;
end;

procedure TForm1.NMSMTP1Failure(Sender: TObject);
begin
StatusBar1.SimpleText := 'Failure';
end;

procedure TForm1.NMSMTP1HostResolved(Sender: TComponent);
begin
StatusBar1.SimpleText := 'Host Resolved';
end;

procedure TForm1.NMSMTP1InvalidHost(var handled: Boolean);
var
TmpStr: String;
begin
If InputQuery('Invalid Host!', 'Specify a new host:', TmpStr) then
Begin
NMSMTP1.Host := TmpStr;
Handled := TRUE;
End;
end;

procedure TForm1.NMSMTP1PacketSent(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMSMTP1.BytesSent)+' bytes of '+IntToStr(NMSMTP1.BytesTotal)+' sent';
end;
 
请告知rfc2554是什么意思?谢谢!!!!!!!
 
Request For Comments, 请求注解
 
你可以认为它们是文档
smtp的验证只是看地址是否有效 要密码干什么?又不是pop3
 
Dream Tiger:
我想了解你所给解答的更详细内容,可否告知?Thank You!!!!!
 
scorpions:
don't understand.
 
smtp验证现在也要密吗了,呵呵。

方法:
连接SMTP服务器后,
1、ELHO yourhostname
获取命令列表,如果不支持ELHO,
则不支持AUTH验证,
改用
1'、HELO yourhostname,验证结束。

如果支持的话,会显示一些命令,其中
如果有
AUTH XXXXX则表示支持AUTH命令,
2、AUTH XXXXX
这时候服务器要求你输入用户名,
输入用base64编码的用户名,
如果用户名正确,会要求你输入用户密码,
输入用base64编码的用户密码,

验证结束。

前面提到的正确与否的判断,需要根据服务器传回的ReplyCode,
具体是什么,参看rfc2554。

 
DreamTiger:
不能明白你的意思,是否可告之详细方法。我将万分感激。
(helo yourhostname.......??????)
 
DreamTiger是个很好的同志!
 
一个演示过程:
ehlo dna.sibc.ac.cn
(所谓yourhostname就是你现在的机器名字)
250-smtp.263.net
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH LOGIN
250 8BITMIME
auth login
334 VXNlcm5hbWU6
(上面的按照base64解码后是:334 Username:)
XXXXXXXX
334 UGFzc3dvcmQ6
(上面的按照base64解码后是:334 Password:)
XXXXXXXX
535 Error: authentication failed
或者
235 Authentication successful
验证结束。



 
我遇到同样问题,即验证总是失败,不知为何,请高手指点。


Email:cqkyy@china.com
 
接受答案了.
 
后退
顶部