HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Bejövő levelek megjelenítése a Web-en


Példaprogram letöltése

4259 bájt

Készítünk egy példaprogramot, amely segítségével az Outlook-ba beérkezett üzeneteinket html formában jeleníthetjük meg. Először a feladó nevét és a tárgyat jelenítjük meg, majd ha rákattintunk egy elemre, akkor megjelenik a levél tartalma.

A példaprogram használatához szükséges egy webszerver (pl.: IIS). A mellékelt példaprogram Outlook XP-vel nem használható, annak címvédelme miatt. A védelem nem engedi, hogy az Outlook-ban tárolt címekhez kívülről hozzáférjünk.
Programunk webes alkalmazás lesz. Kattintsunk a File – New menüpontra. A megjelenő New Items ablakban válasszuk a Web Server Application-t.
Válasszuk a CGI-Stand-alone executable lehetőséget.
Összesen két web oldalt kell generálnunk. Az első oldalon a beérkezett üzeneteket jelenítjük meg. Az első oldal megjelenítéséhez egy TPageProducer komponenst használunk fel (Messages). A TPageProducer, HTMLDoc tulajdonságában megadhatjuk az oldal vázát, amelyben elhelyezhetünk cserélhető elemeket is.
<#Contents>
A cserét a komponens OnHTMLTag eseményében hajthatjuk végre, a ReplaceText változó segítségével.
Az Outlook programhoz OleVariant típusú változók segítségével csatlakozunk.
FOutlook:=CreateOleObject('Outlook.Application');
FNameSpace:=FOutlook.GetNameSpace('MAPI');
A WebModule1 Action property-jében két elemet kell elhelyeznünk. A PathInfo segítségével adhatjuk meg a kérés kiszolgálását kérő kapcsolót (/mail) formában. A Default tulajdonság igazra állításával kijelölhetünk egy alapértelmezett akciót.
Az egyes akciók OnAction eseményében kell leprogramoznunk azt, hogy mi történjen a kérés kiszolgálásakor.
Az első oldal generálásakor végig kell néznünk a bejövő levelek mappa tartalmát. A mappán belül több almappa is szerepelhet, ezért egy rekurzív eljárásra van szükségünk, az összes levél végignézéséhez.
A függvénynek kiindulási mappaként a bejövő levelek mappáját adjuk meg.
ScanFolders(FNameSpace.GetDefaultFolder(6));
Egy Outlook mappa almappáinak számát a Folders kollekció Count értéke adja meg. A kollekció egy elemét pedig az Item tömb segítségével érhetjük el.
while i<Folder.Folders.Count do begin
  ScanFolders(Folder.Folders.Item[i+1]);
A mappának egy levelét az alábbi módon érhetjük el.
MailItem:=Folder.Items.Item(i);
A megtalált leveleket az FList, TStringList típusú változóba jegyezzük fel.
FList.Add('Feladó: '+MailItem.SenderName+'  Tárgy: '+MailItem.Subject);
Az FList változó tartalmát a Messages objektum OnHTMLTag eseményében helyezzük el a létrehozott web oldal vázában.
for i:=0 to FList.Count-1 do
  ReplaceText:=ReplaceText+'<a href="server.exe/mail?m='+IntToStr(i+1)+'">'+FList[i]+'</a><BR>';
Hogy a megjelenített elemre rá lehessen kattintani, hivatkozásként kell felvennünk az egyes elemeket. A /mail kapcsoló használatával biztosítjuk a második akció lefutását, az m=* paraméterrel pedig a levelet azonosítjuk.
Amikor a felhasználó rákattint egy elemre, a második akció OnAction eseménye fut le és szolgálja ki a kérést.
Az m paraméterben kapott indexet az alábbi módon határozhatjuk meg:
FIndex:=StrToInt(Request.QueryFields.Values['m'])
A FindFolder, rekurzív eljárás segítségével keressük meg a megfelelő indexű levelet.
A levél tartalmát a HTMLBody tartalmának használatával jelenítjük meg.
Response.Content:=Response.Content+FMailItem.HTMLBody;
Alkalmazásunkat server néven mentsük el.
A kész alkalmazásunkat lefordítás után helyezzük el például az IIS scripts könyvtárában.
Ha elindítunk egy böngésző programot, akkor a http://localhost/scripts/server.exe cím beírásával ki is próbálhatjuk alkalmazásunkat.

Cikksorozat

#IDKategóriaCikk címeSorozat
1477DelphiAlkalmazás fájljainak frissítése1. rész
1491DelphiAlkalmazás fájljainak frissítése2. rész
1501DelphiAlkalmazás fájljainak frissítése3. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 227. 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-2014 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |