Przerywanie polaczenia TIDPOP3

0

Witam,
Postanowiłem ostatnio oczyścić skrzynke mailowa w ktorej mam paredziesiat tyś. maili.
Do tego probuje napisac program przy uzyciu komponentu IDPOP3
Oto kod który mam:

void __fastcall TForm1::OdebracClick(TObject *Sender)
{
  long int              msgNum;
  TIdMessage           *IdMessage;
  TListItem            *ListItem;


  POP3Client->Host      = "pop3.wp.pl";
  POP3Client->UserId    = "xxx";
  POP3Client->Password  = "xxx";

  /* Łączymy się z serwerem POP3 */
  POP3Client->Connect();
  /* Pobieramy liczbę oczekujących wiadomości */
  msgNum = POP3Client->CheckMessages();

  /* Kasujemy stare archiwum */
  MessageList->Items->Clear();

  /* Wczytujemy wszystkie wiadomości */
  for(int i=1; i<=msgNum; i++)
  {
        StatusBar1->SimpleText= i;

        /* Tworzymy obiekt, który będzie przechowywał wiadomość */
        IdMessage = new TIdMessage(MessageList);

        /* Wczytujemy wiadomość przechowywanąna serwerze */
       // POP3Client->Retrieve(i,IdMessage);     //pobiera cala wiadomosc
        POP3Client->RetrieveHeader(i,IdMessage); //pobiera tylko naglowek wiadomosci

        if((IdMessage->Date > DateTimePicker1->Date) && (IdMessage->Date < DateTimePicker2->Date))
        {
          POP3Client->Delete(i);  //usuwanie wiadomosci
        }
  }

  /* Zamykamy połączenie */
  POP3Client->Disconnect();
  ShowMessage("Koniec");

}

DateTimePicker1-> przechowuje date od ktorej chce maile usunac
DateTimePicker2-> przechowuje date do ktorej chce maile usunac

Program ogolnie dziala jednak czasami sie wysypuje na ktoryms z maili, dokladnie na tej linijce:

        if((IdMessage->Date > DateTimePicker1->Date) && (IdMessage->Date < DateTimePicker2->Date))

Nie wiem co moze byc przyczyna bo IdMessage->Date ma normalny format, taki jak inne maile...?
Gdy wchodze poprzez www na poczte i usune tego maila na ktorym program sie wysypal recznie, to progs dalej dziala poprawnie, przejdzie znowu kilkaset maili i na kolejnym sie sypie.
Prosze o pomoc.
z gory dziekuje

0

sprecyzuj "wysypuje"

0

sprecyzuj "wysypuje"

Teraz zauwazylem ze program sie wysypuje ale tylko wtedy gdy go uruchamiam z poziomu kompilatora (RUN -> RUN), gdy uruchomi sie plik .exe przy wylaczonym kompilatorze to jest OK.
Ten błąd to okienko zatytulowane: "Debugger exception Notification" o tresci: "Project project1.exe raised exception class EConvertError with message 'Invalid argument to time encode'. Process stopped. Use step or Run to continue".

I jeszcze mam inne pytanie:
Podczas usuwania tych maili mniej wiecej co 200 wlaczal sie antywirus o tym ze mail zawiera virusa.
Dlatego przerwalem to usuwanie bo bym musial pare gdzin co pare sekund klikac USUN MAILA.
Dlatego moje pytanie brzmi czy moge antywirusa wyłączyć gdy uruchamiam mój program? Czy wtedy moze wirus się sciagnąć? Wydaje mi sie ze nie gdyz

POP3Client->RetrieveHeader(i,IdMessage);

<-- tą linijka pobieram nagłówek tylko. Ale z drugiej strony mój antywirus po samym nagłówku sie uaktywniał. Takze co o tym sądzicie.
Dzieki za pomoc:) Pozdrawiam,

1 użytkowników online, w tym zalogowanych: 0, gości: 1