Delphi Indy:连接正常关闭

前端之家收集整理的这篇文章主要介绍了Delphi Indy:连接正常关闭前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用D7 Indy 10最新版本.

我的代码使用TIdSMTP发送电子邮件.
我一直在某些最终用户处“正常关闭连接”,并且永远不会发送电子邮件.

代码如下:

try
~~~~
~~~~
_idSMTP := TIdSmtp.Create;
with _idSMTP do
begin
  Host := 'myhost';
  Connect;
  try
    Send(_EmailMsg);
    Result := True;
  except
    on E: Exception do
    begin
      MsgDlgErr(Self.Handle,E.Message)
    end
  end;
end;
finally
 _idSMTP.Disconnect;
 _idSMTP.Free;
end;

任何建议?

解决方法

http://www.swissdelphicenter.ch/en/showarticle.php?id=1阅读所有相关内容

EIdConnClosedGracefully is an
exception signaling that the
connection has been closed by the
other side intentionally. This is not
the same as a broken connection which
would cause a connection reset error.
If the other side has closed the
connection and the socket is read or
written to,EIdConnClosedGracefully
will be raised by Indy. This is
similar to attempting to read or write
to a file that has been closed without
your knowledge.

In some cases this is a true exception and your code needs to handle it. In other cases (typically servers) this is a normal part of the functioning of the protocol and Indy handles this exception for you. Even though Indy catches it,when running in the IDE the debugger will be triggered first. You can simply press F9 to continue and Indy will handle the exception,but the constant stopping during debugging can be quite annoying. In the cases where Indy catches the exception,your users will never see an exception in your program unless it is run from the IDE.

猜你在找的Delphi相关文章