CO 60 sek???? troche szybko :)
Daj na forme timera i ustaw mu interval jaki chcesz.
Potem wrzuć jeszcze IdPOP3 z Indy i w timmera wpisz:
var
Ile: Integer;
begin
NMPOP3.Host := 'SERWER POP3';
NMPOP3.Username := 'Login';
NMPOP3.Password := 'Haslo';
NMPOP3.Connect;
Ile := NMPOP3.CheckMessages;
if Ile > 0 then
begin
Lebel1.Caption:='Nowych wiadomości: '+IntToStr(Ile);
end
else
begin
Lebel1.Caption:='Brak wiadomości';
end;
NMPOP3.Disconnect;
end;
Hex napisał o sprawdzaniu nowych wiadomości....Może tak: na początku masz na koncie X wiadomości. Czyli robisz zmienną, której za pierwszym sprawdzeniem poczty przypisywana jest X wiadomości.
Powiedzmy, że wszystkie je sprawdziłeś i przeczytałeś (i nie skasowałeś ;) ), a przyszedł nowy mail. Teraz ilość wszystkich wiadomości nadamy zmiennej Y. Czyli Y > X. Ilość nowych wiadomości : Y-X. Klikamy przycisk - przeczytałem Wszystkie ;) i przypisujemy zmiennej X wartość Y. -> X=Y. No ale teraz tak....masz 1000 wiadomości - trochę dużo postanowimy usunąć wszystkie.
(Y = 0 AND X = 100) -> ~(X>Y). Wyżej zdefiniowaliśmy funkcję "mówiącą", ze jeśli X jest > od Y to jest nowa wiadomość...Czyli aby "mądry" program pokazał, że mamy nową wiadomość - musimy dostać 1001 maili ;) Y=1001 , X=1000 -> Y-X=1 ;) . Musimy to poprawić czyli robimy następny warunek (pamiętająć, że Y to ilość wiadomości aktualnie znajdujących się na serwerze, a X to ilość wiadomośći przy ostatnim sprawdzeniu i "zaakceptowaniu" wykinków): jeśli Y < X to X = Y ;) - wtedy unikniemy błedów...I wrócimu do punkty wyjścia - czyli 0 nowych wiadomości. Zmienną X zapisuj do pliku np. INI i wtedy będzie to działać (może ;) ) przy każdym następnym uruchomieniu programu.
Trochę się rozpisałem, jeśli popełniłem jakieś błedy ortograficzne czy inne to sorka ale nie mam siły tego sprawdzać :( no i najważniejsze!!! nie podałem kodu ;) nie z chamstwa tylko chciałbym abyś Hex'ie wykazał się swoją inicjatywą i ZROBIŁ TO SAM !
Pordrowienia!
[cya]