The following example codes demonstrate how to retrieve email from POP3 server. This sample downloads emails from POP3 server and deletes the email after the email is retrieved.
// The following example codes demonstrate retrieving email from POP3 server
// To get full sample projects, please download and install EAGetMail on your machine.
// To run it correctly, please change email server, user, password, folder, file name value to yours
Unit Unit1; 
Interface 
Uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, EAGetMailObjLib_TLB; 
Type 
  TForm1 = Class(TForm) 
    Button1: TButton; 
    Procedure Button1Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  End; 
Const 
  MailServerPop3 = 0; 
  MailServerImap4 = 1; 
Var 
  Form1: TForm1; 
Implementation 
{$R *.dfm} 
Procedure TForm1.Button1Click(Sender: TObject); 
Var 
  oMail: IMail; 
  oClient: TMailClient; 
  oServer: TMailServer; 
  oTools: TTools; 
  infos: OleVariant; 
  i, UBound, Count: Integer; 
  oInfo: IMailInfo; 
  mailFolder: WideString; 
  fileName: WideString; 
Begin 
  Try 
    oTools := TTools.Create(Application); 
    // Create a folder named "inbox" under
    // current directory to store the email files
    mailFolder := GetCurrentDir() + '\inbox'; 
    oTools.CreateFolder(mailFolder); 
    oServer := TMailServer.Create(Application); 
    oServer.Server := 'pop3.emailarchitect.net'; 
    oServer.User := 'test@emailarchitect.net'; 
    oServer.Password := 'testpassword'; 
    oServer.Protocol := MailServerPop3; 
    // If your server requires SSL connection
    // Please add the following codes
    // oServer.SSLConnection := true;
    // oServer.Port := 995;
    oClient := TMailClient.Create(Application); 
    oClient.LicenseCode := 'TryIt'; 
    oClient.Connect1(oServer.DefaultInterface); 
    ShowMessage( 'Connected!' ); 
    infos := oClient.GetMailInfos(); 
    UBound := VarArrayHighBound( infos, 1 ); 
    Count := UBound+1; 
    ShowMessage(Format('Total %d email(s)', [Count])); 
    For i := 0 To UBound Do 
    Begin 
      oInfo := IDispatch(VarArrayGet(infos, i)) As IMailInfo ; 
      ShowMessage(Format('Index: %d; Size: %d; UIDL: ' + oInfo.UIDL, 
      [oInfo.Index, oInfo.Size])); 
      // Generate a random file name by current local datetime,
      // You can use your method to generate the filename if you do not like it
      fileName := mailFolder + '\' + oTools.GenFileName(i) + '.eml; 
      // Receive email from POP3 server
      oMail := oClient.GetMail( oInfo ); 
      ShowMessage( 'From: ' + oMail.From.Address + #13#10 + 
        'Subject: ' + oMail.Subject ); 
      // Save email to local disk
      oMail.SaveAs( fileName, true ); 
      // Mark email as deleted from POP3 server
      oClient.Delete(oInfo); 
    End; 
    // Quit and pure emails marked as deleted from POP3 server
    oClient.Quit; 
  Except 
    On ep:Exception Do 
      ShowMessage( 'Error: ' + ep.Message ); 
  End; 
End; 
End. 
If you have any comments or questions about above example codes, please add your comments here.