Automatisierter Abgleich von Outlook-Kontakten mit Datenbank

Hawkings

Erfahrenes Mitglied
Hi @ all,

in Rahmen eines Projekts möchte ich in einem bestimmten Zeitintervall, bspw. einmal am Tag, die Kontakte aus dem Microsoft Outlook auf Neuzugänge überprüfen, also neu erstellte Kontakte.
Falls diese noch nicht in der Datenbank enthalten sind, möchte Ich diese in die Datenbank implementieren.

Ich habe bereits dazu Freund Google befragt und mir Berichte über dieses Thema durchgelesen und bin dabei auf verschiedene Möglichkeiten gestoßen.

  • Zugriff auf Outlokk-Daten über OLEDB
  • Zugriff über LDAP-Protokoll (jedoch eher für Exchange)
  • Verwendung von COM-Schnittstellen

Anscheinend soll OLEDB bis zu 50mal schneller sein als über eine COM-Schnittstelle, ist das korrekt?!

Was für Möglichkeiten gibt es noch, auf die Outlook-Daten zuzugreifen?! Über Links zu weiterem Informationsmaterial würde ich mich freuen :)

Ich stelle mir die Vorgehensweise beim Abfragen der Outlook-Daten in etwa so vor:

  1. Aufruf/Start des Programms (über VSTO/STK-Button in Oberfläche von Outlook / geplanter Task)
  2. Überprüfung der Kontakte auf Neuzugang/Nicht in Datenbank enthaltener Kontakt
    Hierbei dachte ich an einezwei verschiedene Überprüfungsmöglichkeiten:
    Kontaktdaten: Abfrage von mehreren Parametern, bspw. Name,Vorname, Emailadresse
    Nachteil: Kontakt kann mehrmals angelegt sein, jedoch mit unterschiedlichen Parametern.
    Inhalt Notizen: Wenn ein Kontakt in die Datenbank geschrieben wurde, wird nach Abschluss der Implementierung eine Anmerkung in die Notizen des Kontakts geschrieben, bspw. "In Datenbank aufgenommen". Anhand dieser Anmerkung kann das Programm erkennen, ob der Kontakt bereits in der Datenbank enthalten ist.
    Nachteil: Anmerkung in Notiz kann durch Benutzer verändert werden, ob versehentlich oder wissentlich, und dadurch wird der Kontakt wieder in die Datenbank implementiert, obwohl er bereits in dieser vorhanden ist.
    Eindeutige ID
  3. Verbindungsherstellung zwischen Outlook und Datenbank, jedoch über welche Schnittstelle/Technik
  4. Übertragen der Daten per SQL-Befehle in Datenbank
  5. Schließen der Verbindung + Loggen des ErrorCodes, bei Erfolg Anmerkung in Notiz des entsprechenden Kontakts oder ähnlichem

In etwa so stelle ich mir den Programmablauf vor, jemand Ideen über weitere Herangehensweisen, bzw. Informationen diesbezüglich?!

Über eure Antworten freue ich mich :)

Grüße