很久以前我写了下面的代码从邮箱收取邮件:异常是由TNMPOP3.Connect产生两次
pop3 := TNMPOP3.Create(Self);
try
pop3.Host := FAppSettings.ServerName;
pop3.Port := FAppSettings.ServerPort;
pop3.UserID := FAppSettings.Login;
pop3.Password := FAppSettings.Password;
try
pop3.Connect;
except
on E:Exception do AddError(E.Message);
end;
if not pop3.Connected then Exit;
if pop3.MailCount > 0 then begin
pop3.DeleteOnRead := False;
pop3.AttachFilePath := GetTempDirectory;
ProcessMsgs(pop3);
end
else begin
TCommon.InfMsg('There are no messages in mailbox');
end;
pop3.Disconnect;
finally
pop3.Free;
end;
现在,当邮件服务提供商完全切换到SSL验证码明明失败了,但在一个陌生的方式:
pop3.Connect
行会导致一个异常,但在E.Message中有一个空文本,使得最终用户不清楚该问题。在Delphi调试器的问题
调查显示,在第一时间产生正确的异常:
工程....有消息引发的异常类异常“验证失败”。
但然后,当我按F8(步过)再次,执行点保持在相同的线上,并产生另一异常:
项目....提出异常类异常处理消息“ ”。
只有这个例外被try-except
捕获。
为什么?
看看'TNMPOP3'的代码,原因应该在那里 – 2014-09-21 07:11:27
@Sir Rufo:我没有'TNMPOP3'的源代码 – Paul 2014-09-21 07:20:32
经过一些Google搜索后,似乎FastNet的组件有点儿bug ),你应该考虑使用不同的库。因为Delphi 6请看http://synapse.ararat.cz – 2014-09-21 07:23:00