K
koyochen
Unregistered / Unconfirmed
GUEST, unregistred user!
这几天要写一个mail server,研究了一下 indy
发现问题很多,
1. 版本升级后变动很大,我从原来的 indy 到 indy9,到 indy10
每次都要对代码进行大的修改,还有若干多的属性被新版本删除
自带事件几次申明都不一样,晕
2. bug 多多
在 10.0.5中的 IdSMTPRelay.pas 居然有这样的代码,看晕了
procedure InternalSend(const AMsg: TIdMessage;const AEmailAddresses: TIdEMailAddressList);
var
ServerIndex:Integer;
begin
if AEmailAddresses.Count = 0 then
begin
Exit;
end;
....
try
// 空的, try 什么?
try
ResolveMXServers(AEMailAddresses[0].Address);
ServerIndex:=0;
// ????????????,这样的 while 是什么意思?
while (ServerIndex<=FMXServerList.Count-1) and not Connected do begin
FHost := FMXServerList[ServerIndex];
Connect(AEmailAddresses[0]);
end;
......
// 又循环调用,但其他代码没有修改过 AEmailAddresses 值
InternalSend(AMsg,AEmailAddresses);
发现问题很多,
1. 版本升级后变动很大,我从原来的 indy 到 indy9,到 indy10
每次都要对代码进行大的修改,还有若干多的属性被新版本删除
自带事件几次申明都不一样,晕
2. bug 多多
在 10.0.5中的 IdSMTPRelay.pas 居然有这样的代码,看晕了
procedure InternalSend(const AMsg: TIdMessage;const AEmailAddresses: TIdEMailAddressList);
var
ServerIndex:Integer;
begin
if AEmailAddresses.Count = 0 then
begin
Exit;
end;
....
try
// 空的, try 什么?
try
ResolveMXServers(AEMailAddresses[0].Address);
ServerIndex:=0;
// ????????????,这样的 while 是什么意思?
while (ServerIndex<=FMXServerList.Count-1) and not Connected do begin
FHost := FMXServerList[ServerIndex];
Connect(AEmailAddresses[0]);
end;
......
// 又循环调用,但其他代码没有修改过 AEmailAddresses 值
InternalSend(AMsg,AEmailAddresses);