uses Psock, NMsmtp; function testSmtp(user, psd, host: string; port: integer): boolean; 
var nmsmtp1: TNMSMTP; 
MailTo,MailBody:TStringList; 
Tempstr1,Tempstr2 : String; 
TrueStr1,TrueStr2 : String; 
strStatus: string; 
AuthSucc: boolean; 
begin 
AuthSucc := false; 
nmsmtp1 := TNMSMTP.Create(nil); 
Nmsmtp1.Host := host; 
nmsmtp1.Port := port; 
nmsmtp1.UserID := user;//发信人的用户名,必须是真实的 
nmsmtp1.ReportLevel :=1; 
Nmsmtp1.TimeOut :=10000; 
nmsmtp1.Connect ; ///连接 strStatus:=nmsmtp1.Status; 
if nmsmtp1.ReplyNumber = 250 then begin 
strStatus:=nmsmtp1.Transaction('auth login'); //开始认证 
end; 
if nmsmtp1.ReplyNumber =334 then 
begin 
strStatus:=nmsmtp1.Transaction(EncodeBase64(user));// 用户名aaaaa 
strStatus:=nmsmtp1.Transaction(EncodeBase64(psd)); //密码为123456 
end; if nmsmtp1.ReplyNumber =235 then 
begin 
strStatus:='successful'; 
AuthSucc:=true; 
end; result := AuthSucc; ////验证成功 
nmsmtp1.Disconnect; 
nmsmtp1.Free; 
end; 测试通过,反回true为验证通过