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