TidSMTP Software caused connection abort 问题(50分)(50分)

  • 主题发起人 主题发起人 yjlft
  • 开始时间 开始时间
Y

yjlft

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用TidSMTP 控件发送邮件,运行到SMTP.Connect 时发生Software caused connection abort错误,我的设置都是对的,不知为什么会出现这个问题,是不是邮件服务器设置有问题?请各位高手指点,另:我有Delphi 6 自带的MainClient例子发送邮件也会出现同样的错误。
 
帮忙顶一下。
 
你要设置一个邮箱,pop,smtp服务器,我试过好用
 
应该不会吧.我用的是D7,INDY9.在线程里发邮件,从未出现你所说的问题.
我的代码如下,供你参考:
procedure TMailThread.Execute;
var IdSMTP:TIdSMTP;
IdMsg:TIdmessage;
Stop:boolean;
begin
{ Place thread code here }
FreeOnTerminate := True;

synchronize(LoadFromMain); //取邮件主题内容等
Idsmtp:=TIdsmtp.Create(nil);
IdMsg:=TIdmessage.Create(nil);
try
//构造邮件体
IdMsg.Subject := FSubject;
IdMsg.Body.Text := FContent;
IdMsg.From.Address := FMail;
IdMsg.Recipients.EMailAddresses := GetEmail(FToMail);
if FileExists(FAttachment) then TIdAttachment.Create(IdMsg.MessageParts, FAttachment);

//填充SMTP
IdSMTP.Host := GetHost;
IdSMTP.Port := 25;
IdSMTP.Username := GetUsername;
IdSMTP.Password := GetPS;

//连接到SMTP服务器
try
IdSMTP.Connect;
except
SendForm.Sending := false; //更改主窗口变量
exit;
end;

//验证身分
if (IdSMTP.AuthSchemesSupported.IndexOf('LOGIN')<>-1) then
begin
IdSMTP.AuthenticationType :=atLogin;
try
if not IdSMTP.Authenticate then //未通过验证
begin
SendForm.Sending := false;
if IdSMTP.Connected then IdSMTP.Disconnect;
exit;
end;
except
SendForm.Sending := false;
if IdSMTP.Connected then IdSMTP.Disconnect;
exit;
end;
end;

//发送信件
try
IdSMTP.Send(IdMsg);
synchronize(DoSendLogTrue); //发送成功,执行DoSendLogTrue函数
except
SendForm.Sending := false;
synchronize(DoSendLogFalse); //发送失败,执行DoSendLogFalse函数
if IdSMTP.Connected then IdSMTP.Disconnect;
end;
SendForm.Sending := false;
if IdSMTP.Connected then IdSMTP.Disconnect;
finally
IdSMTP.Free;
IdMsg.Free;
end;
end;
 
后退
顶部