try IdPOP3.Connect(); Except IdPOP3.DisconnectSocket ; IdPOP3.Disconnect ; Application.MessageBox('登录远程服务器时出现错误','连接错误',MB_ICONEXCLAMATION) ; end ; try EmailTotalNum := IdPOP3.CheckMessages ; Edit1.Text:= '共有'+ inttostr(EmailTotalNum) + ' 封邮件' ; if EmailTotalNum > 0 then begin for TmpNum := 1 to EmailTotalNum do begin IdMessage1.Clear ; try IdPOP3.Retrieve(TmpNum,IdMessage1) ; Except IdPOP3.DisconnectSocket ; IdPOP3.Disconnect ; Application.MessageBox('收取邮件时发生错误!','错误',MB_ICONERROR) ; Break ; end ; Edit2.Text:=IdMessage1.Subject; Idmessage1.IsEncoded :=False; For J:=0 to IdMessage1.Body.Count-1 do ShowMessage(IdMessage1.Body[J]); if IdMessage1.MessageParts.Count > 0 then begin MessageCount := IdMessage1.MessageParts.Count ; for I := 0 to MessageCount-1 do begin if IdMessage1.MessageParts.Items[I] is TIdAttachment then begin if FileExists( 'c:\' + TIdAttachment(IdMessage1.MessageParts.Items[I]).FileName) then DeleteFile('c:\' + TIdAttachment(IdMessage1.MessageParts.Items[I]).FileName) ; try TIdAttachment(IdMessage1.MessageParts.Items[I]).SaveToFile('c:\' + TIdAttachment(IdMessage1.MessageParts.Items[I]).FileName) ; Except Application.MessageBox('文件保存失败!','保存失败',MB_ICONERROR) ; IdPOP3.DisconnectSocket ; IdPOP3.Disconnect ; Break ; end ; end ; end ; end ; //删除已收到本地的邮件 try IdPOP3.Delete(TmpNum) ; Except Continue ; end ; end ; end ; Finally IdPOP3.DisconnectSocket ; IdPOP3.Disconnect ; end ; end ;
IdPOP3.Connect();
Except
IdPOP3.DisconnectSocket ;
IdPOP3.Disconnect ;
Application.MessageBox('登录远程服务器时出现错误','连接错误',MB_ICONEXCLAMATION) ;
end ;
try
EmailTotalNum := IdPOP3.CheckMessages ;
Edit1.Text:= '共有'+ inttostr(EmailTotalNum) + ' 封邮件' ;
if EmailTotalNum > 0 then
begin
for TmpNum := 1 to EmailTotalNum do
begin
IdMessage1.Clear ;
try
IdPOP3.Retrieve(TmpNum,IdMessage1) ;
Except
IdPOP3.DisconnectSocket ;
IdPOP3.Disconnect ;
Application.MessageBox('收取邮件时发生错误!','错误',MB_ICONERROR) ;
Break ;
end ;
Edit2.Text:=IdMessage1.Subject;
Idmessage1.IsEncoded :=False;
For J:=0 to IdMessage1.Body.Count-1 do
ShowMessage(IdMessage1.Body[J]); if IdMessage1.MessageParts.Count > 0 then
begin
MessageCount := IdMessage1.MessageParts.Count ;
for I := 0 to MessageCount-1 do
begin
if IdMessage1.MessageParts.Items[I] is TIdAttachment then
begin
if FileExists( 'c:\' + TIdAttachment(IdMessage1.MessageParts.Items[I]).FileName) then
DeleteFile('c:\' + TIdAttachment(IdMessage1.MessageParts.Items[I]).FileName) ;
try
TIdAttachment(IdMessage1.MessageParts.Items[I]).SaveToFile('c:\' + TIdAttachment(IdMessage1.MessageParts.Items[I]).FileName) ;
Except
Application.MessageBox('文件保存失败!','保存失败',MB_ICONERROR) ;
IdPOP3.DisconnectSocket ;
IdPOP3.Disconnect ;
Break ;
end ;
end ;
end ;
end ;
//删除已收到本地的邮件
try
IdPOP3.Delete(TmpNum) ;
Except
Continue ;
end ;
end ;
end ; Finally
IdPOP3.DisconnectSocket ;
IdPOP3.Disconnect ;
end ;
end ;