Delphi - Beérkezett levelek nyomtatása programból

forráskód letöltése
Készítünk egy komponenst, amely segítségével könnyedén kinyomtathatjuk a Microsoft Outlook programba beérkezett leveleinket. A nyomtatásnál lehetőségünk van megadni, hogy az összes beérkezett üzenetet akarjuk-e kinyomtatni, vagy csak azokat, amelyeket még nem olvastunk.
A mellékelt példaprogram megnyitása előtt a PrintMail.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A PrintMail komponens PrintOnlyUnread property-jében adhatjuk meg, hogy a komponens mely leveleket nyomtassa ki. Ha a property értéke igaz, akkor csak azok a levelek kerülnek kinyomtatásra, amelyeket még nem olvastunk. Igaz érték esetén a Beérkezett üzenetek mappa összes levele kinyomtatásra kerül.
A nyomtatás a PrintMails metódus meghívására történik.
procedure PrintMails;
A komponenst a TComponent osztályból származtatjuk.
Az Outlook program és objektumainak eléréséhez OleVariant típusú változókat használunk. Az OleVariant típus a ComObj unit-ban van implementálva.
Először megnyitjuk az Outlook programot.
Outlook:=CreateOleObject('Outlook.Application');
Az Inbox (Beérkezett üzenetek) mappa eléréséhez az alábbi két utasítás szükséges.
NameSpace:=Outlook.GetNameSpace('MAPI');
InBox:=NameSpace.GetDefaultFolder(olFolderInbox);
Az egyes leveleket a MailItem objektum képviseli, amelyeket az InBox objektum Items tagján keresztül érhetünk el.
MailItem:=InBox.Items.Item(i);
A MailItem objektum Unread tagjának igaz értéke jelzi számunkra, hogy az adott levél még nem volt elolvasva.
if MailItem.Unread then
  MailItem.PrintOut;
A nyomtatást a PrintOut metódus végzi.