C# Outlook GetDefaultFolder

Hawkings

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem. Ich möchte die Kontakte in meinen Ordner "Kontakte" in Outlook durchsuchen auf ein benutzerdefiniertes Feld mit Namen "Import", dieses hat den Wert Ja oder Nein.

Allerdings habe ich schon bei der FEstlegung des Ordners ein PRoblem, er findet das Objekt nicht.

Code:
            var outlookApplication = new ApplicationClass();
            NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
            MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);

            for (int i = 1; i < contacts.Items.Count + 1; i++)
            {
                System.Text.StringBuilder result = new System.Text.StringBuilder();
                var contact = (ContactItem)contacts.Items[i];
                Console.WriteLine("   " +contact.FullName);
                MAPIFolder contactFolder = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts).Folders["Kontakte"]; ;

In der letzten Zeile knallt er mir dann...
Der Vorgang konnte nicht ausgeführt werden. Ein Objekt wurde nicht gefunden.

Warum findet er das nicht?! Was fehlt?!

Meine zweite Frage betrifft das auslesen des benutzerdefinierten Feldes. Hierbei lehne ich mich an das Beispiel von MSDN an, dass ich hier gefunden habe:
http://msdn.microsoft.com/de-de/library/ms269001.aspx

Damit möchte ich, wei bereits erwähnt, ein benutzerdefiniertes Feld der jeweiligen Benutzer auslesen.
Code:
Outlook.Items TeamTrackCon = contactFolder.Items.Restrict("[Import]='Ja'");
                foreach (Outlook.ContactItem OutlCon in TeamTrackCon)
...
                {

Geht das so oder muss ich da noch was ändern?!

Über eure Hilfe würde ich mich freuen :)
 
Lösung:

Code:
        public static ArrayList ControlOutlContacts()
        {
            Console.WriteLine(":: Durchgang sämtlicher Outlook-Kontakte / Methode ControlOutlContacts ::");
            var outlookApplication = new ApplicationClass();
            NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
            MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
            Outlook.Items TeamTrackCon = contacts.Items.Restrict("[Import]='Ja'");
            ArrayList ConToImport = new ArrayList();
            for (int i = 1; i < contacts.Items.Count + 1; i++)
            {
                var contact = (ContactItem)contacts.Items[i];
                string blubberdiblubb;
                try
                {
                    blubberdiblubb = contact.UserProperties["TeamTrack"].Value.ToString();  //Liefert true zurück, wenn aktiviert
                }
                catch(System.Exception e)
                {
                    Console.WriteLine("Der Kontakt "+contact.FullName+" ist noch nicht ins TT implementiert worden");
                    ConToImport.Add(contact.FullName);
                    
                }

Der Code geht die einzelnen Kontakte der Applikation Outlook durch und untersuche diese auf das benutzerdefinierte Feld Import...
In meinem Fall ist das Feld "Import" noch nicht bei allen Kontakten vorhanden...kommt das Programm an eine Stelle, an der kein WErt gefunden wird, knallt er in die catch rein und ich füge den Namen dann einem ArrayList hinzu, das ich später verwende...

Forum unterstützt Suche durch Google...
Kennt sich keiner mit diesem Thema aus?!
 
Das oben genannte Problem ist gelöst, jedoch eine Stelle im Quellcode funktioniert leider nicht so, wie es soll...

es geht mir um folgende Funktion, Restrict.

Code:
            string lstrRestrictT = "[HarHar] = null AND [HarHar]=Nein";
            Console.WriteLine(lstrRestrictT);
            Outlook.Items TeamTrackCon = contacts.Items.Restrict(lstrRestrictT);

Diese Tabelle HarHar möchte ich auf den jeweiligen Status abfragen. Hierbei gibt es
  • Ja
  • Nein
Des weiteren kann aber auch noch kein wert definiert sein für dieses Feld.

Wie kriege ich jetzt heraus, welche Felder noch nicht geHarHart :-P wurden?! Bzw. die noch nichts drinnen stehen haben.
HarHar = Nein funktioniert einwandfrei, er bringt mir dann alle, die false sind, aber was ist mit denen, die keinen WErt in dieser Spalte HarHar stehen haben?!

Ich brauche diese Funktion dringend, wäre nett, wenn mir hier einer helfen könnte :)

Grüße
 

Neue Beiträge

Zurück