HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Outlook-ba érkezett e-mail-ek feldolgozása programból


Adatbányászat az Outlook-ból

Példaprogram letöltése

4568 bájt

Ebben a példaprogramban kilistázzuk az Outlook mappáit. Egy kiválasztott mappában megvizsgáljuk az összes üzenetet, valamint a bennük lévő csatolt állományokat. Megnyitjuk a csatolt állományokat, és a bennük elhelyezkedő linkeket megjelenítjük egy ListBox-ban.

A program csak akkor talál eredményt, ha van olyan e-mail üzenete a megadott outlook mappában, melynek van állomány melléklete, amelyben http:// kezdetű linkek vannak!
Először meg kell nyitnunk az Outlook-ot, és le kell kérdeznünk a mappák főkönyvtárát.
FOutlook:=CreateOleObject('Outlook.Application');
FNameSpace:=FOutlook.GetNameSpace('MAPI');
A kapcsolatot OleVariant típusú változók segítségével valósítjuk meg. Az OleVariant típus használatához a uses listában fel kell sorolnunk a COMOBJ unit nevét is.
Egy Outlook mappának lehet további almappája is. Az összes mappát meg kell keresnünk. A megtaláltakat egy TreeView komponens segítségével jelenítjük meg, hierarchiájuknak megfelelően.
A főkönyvtár mappáival könnyű dolgunk van, azokat az FNamespace objektum Folders tulajdonságán keresztül elérhetjük.
for i:=1 to FNamespace.Folders.Count do
  AddToView(FNamespace.Folders.Item(i));
Az AddToView metódus végzi el a TreeView komponens fő csomópontjainak létrehozását.
A további almappák eléréséhez rekurziót kell használnunk, amelyet a SearchSubFolders metódus valósít meg.
procedure SearchSubFolders(Folder: OleVariant; Node: TTreeNode);
A paraméterként kapott mappa további almappáit a Folders property-n keresztül érhetjük el.
if Folder.Folders.Count>0 then
  for i:=1 to Folder.Folders.Count do
    SearchSubFolders(Folder.Folders.Item(i),SubNode);
Ha a Folders.Count értéke nagyobb nullánál, akkor az objektum rendelkezik almappákkal.
Ha a keresés véget ért, akkor a TreeView1 objektumban egy fa szerkezet segítségével láthatóak a megtalált mappák. Amikor ezek közül kijelölünk egyet és a „Linkek keresése” feliratú gombra kattintunk, akkor ismételten egy rekurzív keresés segítségével meg kell találnunk a kiválasztott mappát, mint objektumot, az FNamespace.Folders-ből kiindulva.
Ha azonosítottuk a mappát, akkor az FFolder változóba bekerül a kiválasztott mappához tartozó objektum.
Végig kell néznünk a mappában szereplő összes mail-t, a mail-eken belül pedig a csatolt állományokat. Egy mail objektumot az alábbi módon érhetünk el.
FMailItem:=FFolder.Items.Item(i);
A mail-hez tartozó csatolt állományokat az FMailItem.Attachments kollekció segítségével érhetjük el. A kollekció minden egyes eleme egy csatolt állomány. A csatolt fájlok feldolgozását a SearchAttachements metódus végzi.
A csatolt állományok különböző formátumú állományok lehetnek. Nekünk olyan karaktersorozatot kell keresnünk, amely a „http://” taggal kezdődik. Célszerű az állományt lementenünk lemezre, majd karakterenként feldolgoznunk.
Egy csatolt állományt a SaveAsFile metódussal menthetünk lemezre.
Attachements.Item(i).SaveAsFile(ExtractFilePath(Application.ExeName)+'Temp.txt');
A lementett állományt karakter típusú állományként nyitjuk meg.
f: file of Char;
Először meg kell keresnünk benne a „http://” kezdőtagot. Ha megtaláltuk, akkor a további feldolgozást a Link, String típusú változó segítségével folytatjuk. Egy URL címben az alábbi karakterek szerepelhetnek.
[#13,#10,':','&','@','=','/','?','.','0'..'9','a'..'z']
A beolvasott karaktereket a LowerCase függvénnyel kisbetűkké alakítjuk, ezért a halmazban csak az angol ABC kis betűinek kell szerepelnie.
Ha a feldolgozás során olyan karaktert olvasunk be, amely ebben a halmazban nem szerepel, akkor a link végéhez értünk, és azt meg kell jelenítenünk a ListBox-ban. Ezután kezdődhet elölről a „http://” keresése.
A karakterek beolvasása során különös figyelmet kell szentelnünk a #13 és #10 karaktereknek, amelyek sortörést jelentenek. Ezek a karakterek megtörhetik az állományokban található linkeket. Feldolgozásnál ezt a két karaktert nem vesszük figyelembe.
A kereső ciklusokból kiléphetünk a CheckBox használatával. Hogy ezt a funkciót használni tudjuk, a ciklusokban gondoskodnunk kell az Application.ProcessMessages utasítás meghívásáról.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 112. 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 |