我们使用 Delphi 7 运行的软件生成报告并通过电子邮件将报告发送给各个利益相关者。在每天传输的大约 30-40 份报告中,每天有 2-4 份不同的报告因以下异常而失败:“EIdConnClosedGracefully”
我正在尝试追踪为什么会发生这种情况以及如何在代码中捕获它。以下是我们目前所拥有的:
try
// Code that Populates "mess" (a tIdMessage variable)
if (not nSMTP.Connected) then
begin
nSMTP.Connect;
end;
try
nSMTP.Send(mess);
except on E : Exception do
begin
resend := E.Message;
// AutoReports_ExceptionMessage is a string that holds the Exception message
AutoReports_ExceptionMessage := 'Attempt #1: ' + resend;
end;
end;
if (resend <> '') then // If there is an exception triggered, resend the email
begin
try
nSMTP.Send(mess);
except on E : Exception do
begin
resend := E.Message;
AutoReports_ExceptionMessage := 'Attempt #2: ' + resend;
end;
end;
end
finally
mess.Free;
end;
此外,当 EIdConnClosedGracefully 被触发时,它总是显示“尝试 #2:连接正常关闭”。并且永远不要“尝试#1:连接正常关闭”
有什么建议么?