Feedback

C# - Auslesen aller Outlook Kontakte

Veröffentlicht von am 07.01.2009
(3 Bewertungen)
Mit dieser Konsolenanwendung können alle Outlook Kontakte ausgelesen werden.

Dem Projekt müssen zwei Verweise hinzugefügt werden, die Referenzen werden folgendermaßen hinzugefügt:

- Im Projektmappenexplorer Rechtsklick auf das betreffende Projekt
- Den Tab COM auswählen
- Microsoft Office 12.0 Object Library
- Microsoft Outlook 12.0 Object Library

Bei Office 2003 ist es die Version 11.
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

ASP.NET Core Server- und Client-Programmierung

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

using System;
using Microsoft.Office.Interop.Outlook;

namespace GetContacts
{
    internal class Program
    {
        private static void Main()
        {
            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++)
            {
                var contact = (ContactItem) contacts.Items[i];
                Console.WriteLine(contact.FullName);
                Console.WriteLine(contact.Email1Address);
                Console.WriteLine();
            }
            Console.Read();
        }
    }
}
Abgelegt unter Outlook, Kontakte, Office, Mapi.

3 Kommentare zum Snippet

Koopakiller schrieb am 04.01.2012:
Ich habe versucht das ganze mit Office 2010 (Office 14) auszuführen, es scheiterte aber an diesen Zeilen:

var outlookApplication = new ApplicationClass();
NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");


Fehler 3 "Microsoft.Office.Interop.Outlook.ApplicationClass" enthält keine Definition für "GetNamespace", und es konnte keine Erweiterungsmethode "GetNamespace" gefunden werden, die ein erstes Argument vom Typ "Microsoft.Office.Interop.Outlook.ApplicationClass" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) b:\...\Program.cs 127
Fehler 2 Der Interoptyp "Microsoft.Office.Interop.Outlook.ApplicationClass" kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle. b:\...\Program.cs 126
Fehler 1 Für den Typ "Microsoft.Office.Interop.Outlook.ApplicationClass" sind keine Konstruktoren definiert. b:\...\Program.cs 126

Ich habe die Verweise
- Microsoft Office 14.0 Object Library
- Microsoft Outlook 14.0 Object Library

hinzugefügt. Was mach ich falsch?
GewuerzRegal schrieb am 14.07.2014:
Ersetz mal die Zeile:var outlookApplication = new ApplicationClass();
Durch:var outlookApplication = new Microsoft.Office.Interop.Outlook.Application();

Damit funktioniert es mit Outlook 2012.
Koopakiller schrieb am 14.07.2014:
Wow, das Kommentar ist schon über 2 Jahre alt ^^
Danke für deine Hilfe, auch wenn sich das Problem mittlerweile erledigt hat.

Rein von der Fehlermeldung her, habe ich vergessen den Microsoft.Office.Interop.Outlook zu importieren (using-Anweisung). Den Namespace kann man natürlich auch direkt vor jeden Typ-Namen schreiben
Die 2. Fehlermeldung besagt, dass man in den Eigenschaften des Verweises Inerop-Typ einbetten auf False stellen muss.
 

Logge dich ein, um hier zu kommentieren!