HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

E-mail letöltő Windows szolgáltatás


Példaprogram letöltése

5288 bájt

A háttérben futó Windows szolgáltatások kiválóan alkalmasak automatizált műveletek végrehajtásához. Ebben a példában egy olyan szolgáltatást készítünk, amely megadott időközönként letölti leveleinket, egy megadott szerverről. Különválasztja az üzenetek szövegét és a csatolt állományokat.

A Windows szolgáltatás működéséhez szükséges egy munkakönyvtár. A mellékelt példaprogram alapértelmezés szerint a c:\MailService könyvtárat használja. Mielőtt futtatná a mellékelt példaprogramot, hozza létre a szolgáltatás munkakönyvtárát, és helyezze el benne a Settings.ini állományt. Az ini állományban kell megadni a szolgáltatás beállításait. Itt adja meg a mailszerver címét, és belépési adatait. Az Interval értéke határozza meg a letöltés sűrűségét.
A szolgáltatás használatához telepítenie kell azt. A telepítést parancssorból végezheti, az –install kapcsoló használatával. Telepítés után, a szolgáltatás „E-mail üzenetek letöltése” névvel kerül be a Windows szolgáltatások közé.
A szolgáltatás munkakönyvtárát a Unit1.pas 21. sorában található ServicePath konstans értéke határozza meg.
Windows szolgáltatás készítéséhez válasszuk a File – New – Other menüpontot. A megjelenő New Items ablakban válasszuk a New fül Service Application elemét.
Létrejövő alkalmazásunkban egy DataModul szerű ablakot láthatunk, Service1 névvel. Ennek az ablaknak az eseményein keresztül vezérelhetjük Windows szolgáltatásunk működését.
A szolgáltatás a Windows szolgáltatások között a DisplayName-ben megadott szöveg alapján lesz bejegyezve.
Az idő telését egy TTimer komponens segítségével figyeljük. Az FTimer objektumot a szolgáltatás OnCreate eseményében hozzuk létre. Ha egy másodperces késleltetést akarunk, akkor az Interval értékét 1000-re kell állítanunk. A Timer OnTimer eseményének bekövetkezésekor a DoTimer metódust hívjuk meg.
Egy szolgáltatást ki- és be lehet kapcsolni, fel lehet függeszteni, majd ismét lehet folytatni. Hogy ezek a funkciók hibátlanul működjenek, az OnContinue, OnPause, OnShutDown, OnStart, OnStop eseményekben gondoskodnunk kell az FTimer ki- és bekapcsolásáról.
Amikor a szolgáltatás elindul, létrejön az OnExecute esemény. Ebben az eseményben gondoskodnunk kell arról, hogy a szolgáltatás ne érjen véget, csak ha leállítják. Ezt egy végtelen ciklus segítségével érhetjük el.
while not Terminated do begin
  Sleep(1000);
  ServiceThread.ProcessRequests(False);
end;
A beállításokat egy ini állományban adjuk meg. Az ini állományt a TIniFile osztály segítségével kezelhetjük. Egy kulcs értékének kiolvasására a ReadString metódus szolgál.
POP3.Host:=IniFile.ReadString('Settings','HostAddress','');
A levelek letöltéséhez az Indy Clients paletta IdPop komponensét használjuk fel. A Host property-ben adhatjuk meg a mailszerver címét. Felhasználó nevünket a UserID, jelszavunkat a Password property-kben adhatjuk meg.
A megadott szerverhez a Connect metódus meghívásával csatlakozhatunk. A kapcsolatot a Disconnect utasítással bonthatjuk.
A szerveren található, letölthető üzenetek számát a CheckMessages értéke adja meg.
for i:=1 to POP3.CheckMessages do begin
Egy üzenetet sorszáma alapján tölthetünk le, a Retrieve metódus segítségével.
m:=TIDMessage.Create(Nil);
POP3.Retrieve(i,m);
Az üzenet tárgyát a Subject property, a küldőt a Sender.Address értéke adja meg.
Az üzenet szövegét és csatolt állományait a MessageParts kollekción keresztül érhetjük el. A kollekció kétfajta elemet tartalmazhat. Üzenetet – TIDText és csatolt állományt – TIDAttachment.
A ClassType property értékéből olvashatjuk ki, hogy az adott elem éppen melyik.
if m.MessageParts[j].ClassType=TIDAttachment then begin
  Attachment:=m.MessageParts[j] As TIDAttachment;
  Attachment.SaveToFile(ServicePath+'\Attachments\'+Attachment.FileName);
end;
Ha törölni akarjuk a leveleket a szerverről, akkor azt a Delete metódus használatával tehetjük meg.
if LowerCase(Delete)='y' then
  for i:=1 to POP3.CheckMessages do
    POP3.Delete(i);
Ha az alkalmazást fel akarjuk venni a Windows szolgáltatások közé, akkor parancssorból el kell indítanunk az alkalmazást az –install paraméterrel.
MailDownloadService – install
Ha a programot el akarjuk távolítani a szolgáltatások közül, akkor az –uninstall paramétert kell alkalmaznunk.
A Windows szolgáltatások vezérlő ablakát a Start – Beállítások – Vezérlőpult – Felügyeleti eszközök – Szolgáltatások kiválasztásával érhetjük el.

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 238. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |