[C#] Einfacher Outlook-Browser programmieren

Drucken
( 2 Votes )
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 13.11.2012 Zuletzt aktualisiert am 13.11.2012 Geschrieben von Jonny132
Wie man alle Email-Betreffe aus dem Posteingang von Outlook ausliest, wurde bereits im Tutorial [C#] Outlook Emails auflisten gezeigt (Verwendete Referenzen + Usings usw).

In diesem Tutorial wird nun gezeigt, wie diese Emails mittels DataBinding an eine ListBox zur Navigation, 2 Labels für den Betreff des Emails und den Absender des Emails und eine TextBox für den Inhalt der Email gebunden wird.

Das klingt erst einmal Aufwändig - ist es aber garnicht, denn alles was wir benötigen, ist das Form-Load Ereignis in dem wir die Emails an die Controls binden.

Form-Load - Ereignis:
        private void Form1_Load(object sender, EventArgs e)
        {
          Outlook.Application o = 
            new Outlook.Application(); Outlook._NameSpace ns = (Outlook._NameSpace)o.GetNamespace("MAPI");
          
          Outlook.MAPIFolder f = 
            ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

          var mails = from mail in f.Items.Cast<Outlook.MailItem>()
                      where mail as Outlook.MailItem != null
                      select new { SenderAndSubject = mail.SenderName + ": " + mail.Subject,
                                   Subject = mail.Subject,
                                   Sender = mail.SenderName,
                                   Body = mail.Body };

          BindingSource bs = new BindingSource(mails,"");

          lbEmails.DataSource = bs;
          lbEmails.DisplayMember = "SenderAndSubject";

          lblSubject.DataBindings.Add("Text", bs, "Subject", true, DataSourceUpdateMode.OnPropertyChanged);
          lblSender.DataBindings.Add("Text", bs, "Sender", true, DataSourceUpdateMode.OnPropertyChanged);
          tbContent.DataBindings.Add("Text", bs, "Body",true,DataSourceUpdateMode.OnPropertyChanged);
        }
Mittels Linq wird eine Anonyme Klasse erzeugt in der wir uns alle benötigten Infos holen und diese dann der Variable 'mails' zuordnen. Dies ist nötig, da wir von der Outlook-API nur ComObjekte bekommen und diese nicht mittels DataBinding gebunden werden können.

Danach wird nur noch eine neue BindingSource erstellt, welche als DataSource unsere neue Anonyme Klasse enthält.
Abschliessend werden noch die Controls mithilfe der BindingSource an die Daten gebunden.

Das wars auch schon.

Hier noch ein Screenshot wie euer schnell nachprogrammierter Outlook-Browser aussehen könnte:
C# - Outlook Browser     



    Veröffentlichen Sie ihre Kommentare ...