Első lépés most is egy referencia hozzáadása lesz az új alkalmazáshoz az Outlook-ról. A kapcsolat felvétel után egy új e-mail létrehozásához a CreateItem függvényt fogjuk használni. Ennek a függvénynek a segítségével különböző Outlook objektumokat tudunk létrehozni. Az objektum típusát egy OlItemType típusú konstanssal tudjuk megadni, mely a következők egyike lehet: olAppointmentItem (1), olContactItem (2), olJournalItem (4), olMailItem (0), olNoteItem (5), olPostItem (6), vagy olTaskItem (3). Ezek közül mi most az olMailItem konstanst használjuk, aminek következtében a függvény visszatérési értéke egy MailItem objektum lesz, és nekünk éppen erre lesz szükségünk.
private void button1_Click(object sender, System.EventArgs e)
{
Outlook.Application oa = new Outlook.Application();
Outlook.MailItem mi = (Outlook.MailItem)oa.CreateItem(Outlook.OlItemType.olMailItem);
Eredményül egy MailItem osztály példányát kapjuk vissza. A MailItem objektum To property-jébe kell megadnunk azt az e-mail címet, ahová a levelet küldeni akarjuk. A Subject property a levél tárgya, míg a Body a levél szövege. Ennyi általában elég is, tehát ha ezeket az adatokat megadtuk, akkor a Send metódussal el is küldhetjük az e-mail-t. A Send metódus hatására az új e-mail bekerül az Outlook Postázandó mappájába. Természetesen lehetőség van további adatok megadására, például tetszőleges fájlokat adhatunk hozzá a levélhez mellékletként (Attachments property), illetve megadhatjuk, hogy ki kapjon másolatot (CC property), illetve titkos másolatot a levélből (BCC property).
mi.To = "animare@animare.hu";
mi.Subject = "CSO teszt e-mail";
mi.Body = "Üzenet szövege";
mi.Attachments.Add(Application.StartupPath+"\\Form1.cs", m, m, m);
A létrehozott e-mail-t meg is jeleníthetjük a Display függvény hívásával, vagy akár megjelenítés nélkül is rögtön a Postázandó üzenetek (Outbox) mappába küldhetjük a Send függvény hívásával. Ha csak a Save függvényt használjuk, akkor ezzel menthetjük a létrehozott e-mail-t a Piszkozatok mappába.
mi.Display(m);
//mi.Send();
//mi.Save();
}
A MailItem objektumnak számos más property-je és eljárása van, amiket nem csak új levelek létrehozásánál, hanem régebbi e-mail-ek tulajdonságainak lekérdezésénél is használhatunk. Ilyen például a Recipients property, melyen keresztül egy listát kapunk az e-mail címzettjeiről. A Recipients.Count property-ből kiolvasható, hogy a levélnek hány címzettje van. Az Item függvényen keresztül lekérdezhetők az egyes címzettek, paraméterként megadva a címzett indexét. A függvény visszatérési értéke egy Recipient objektum, amiből kiolvashatók a címzett adatai.
A SentOn property visszaadja a levél elküldésének dátumát és időpontját.
Ha a levél még nem lett megnyitva (elolvasva), akkor az UnRead property értéke igaz, ellenkező esetben hamis.
A UserProperties objetumot használhatjuk arra, hogy a levél egyéni tulajdonságait lekérdezzük. Ez egy lista, hasonlóan a Recpients property-hez, amiből UserProperty típusú objektumokat tudunk elérni. Hogy pontosan miről is van szó, jobban megértjük, ha megnézzük, hogy az Outlook-ból ez hogyan történik. A lista fejlécén kattintsunk a jobb egérgombbal, majd válasszuk a "Jelenlegi megjelenítés testreszabása..." menüpontot. Kattintsunk a "Mezők" gombra, és a megjelenő ablakban láthatjuk, hogy milyen adatokat érhetünk el (mezők) a UserProperties objektumon keresztül. Egy MailItem objektumnál ez a property csak olvasható, új tulajdonságokat nem hozhatunk létre.
Ha egy MailItem objektumról másolatot szeretnénk készíteni, akkor használjuk a Copy függvényt. A függvény az összes Outlook elemnél használható, nem csak a MailItem-nél. Jól használható a Move függvénnyel együtt arra, hogy a levelekről másolatot készítsünk egy másik mappában. A Move függvény a levelet "átmozgatja" a megadott mappába, és az eredeti helyéről törli azt.
A PrintOut metódussal kinyomtathatjuk a levelet, az alapbeállításokat használva.
Ha már nincs szükségünk a levélre, akkor a Delete függvénnyel törölhetjük azt.
A Reply függvény akkor használható ki, amikor egy levélre válaszolni akarunk. A függvény visszatérési értéke ugyanis egy olyan MailItem objektum, aminek címzettjéhez beírja az eredeti levél küldőjének címét.
MailItem mi2 = mi.Reply;
mi2.Body = „Megkaptam!”;
mi2.Send;