Darf ich in Outlookkontakt schreiben?
Hallo allerseits,
ich muss einige Daten in meinen Outlookkontakten ändern. Das möchte ich nun als Übung mit Delphi machen.
Delphi-Quellcode:
Kann und darf ich überhaupt mit Delphi die bestehenden Outlookkontakte ändern?
outlook := CreateOleObject('Outlook.Application');
NameSpace := outlook.GetNameSpace('MAPI'); Contacts := NameSpace.GetDefaultFolder(olFolderContacts).Folders.Item('ABC'); for i := 1 to Contacts.Items.Count do begin Contact := Contacts.Items.Item(i); if lowercase(Trim(Contact.JobTitle)) = 'blabla' then begin Contact.OfficeLocation := '01'; end; end; Gruß Peter |
Re: Darf ich in Outlookkontakt schreiben?
Kommt auf die Sicherheitseinstellungen von Outlook an.
|
Re: Darf ich in Outlookkontakt schreiben?
Ich kenne als Sicherheitseinstellungen von Outlook zwei Varianten: Zum einen die Abfrage von Outlook den Zugriff eines externen Programms auf Outlook für 1 - 10 Minuten zulassen oder die Sicherheitsstufe für Makros von Niedrig bis Sehr hoch.
Beim Auslesen der Kontakte zieht die erste Variante und Outlook zeigt eine entsprechende Meldung an, die bestätigt oder verworfen werden kann. Ich habe gerade ausprobiert mit Hilfe des oben stehenden Codes in den Kontakt zu schreiben. Leider klappt es nicht. Es kommt noch nicht einmal die Sicherheitsabfrage von Outlook, dass ein externes Programm Zugriff haben möchte. Was mache ich falsch? Gruß Peter |
Re: Darf ich in Outlookkontakt schreiben?
Durch Ausprobieren habe ich herausgefunden, dass bei meinem Outlook 2003 die Sicherheitsabfrage nur erscheint, wenn ich auf die Emailadresse(n) eines Kontaktes zugreife.
Schreiben in einen Kontakt lässt Outlook bisher aber noch nicht zu. Könnte es sein, dass ich wie bei Datenbank die Methoden Edit+Post in Outlook ContactItem.Change aufrufen muss? |
Re: Darf ich in Outlookkontakt schreiben?
Moin,
der Abgleich mit einem Nokia Handy bringt komischerweise keine Abfrage, und da werden alle Kontakte, Termine usw. übertragen (Test mit Outlook 2007). Also muss es da noch eine andere Lösung geben.... :-) |
Re: Darf ich in Outlookkontakt schreiben?
Die Sicherheitsabfrage kannst du umgehen, wenn du deine Anwendung von MS zertifizieren lässt. Ich denke Nokia leistet sich das.
|
Re: Darf ich in Outlookkontakt schreiben?
Die werden ihre Anwendung signiert haben.
|
Re: Darf ich in Outlookkontakt schreiben?
dann sollte es ja möglich sein die dll's etc. von Nokia zu nutzen :-)
|
Re: Darf ich in Outlookkontakt schreiben?
Eigentlich sollte das doch kein Problem sein, einen Kontakt zu verändern. Jetzt mit einer anderen DLL zu arbeiten, finde ich unsportlich ;)
|
Re: Darf ich in Outlookkontakt schreiben?
Du könntest deine Dll auch signieren und dein Zertifikat manuell (einmalig) bestätigen lassen.
|
Re: Darf ich in Outlookkontakt schreiben?
Ah geh! Das soll eine Programmierübung für mich sein und nicht mein Jahresgehalt auffressen! ;)
Aber könnte es nicht sein, dass Outlook sich als störrisch erweist, da ich mit einem Exchange Server verbunden bin? |
Re: Darf ich in Outlookkontakt schreiben?
Hi,
ja das hättest du ja mal vorher erwähnen können. Bei Exchange kann der Admin dir die Rechte nehmen.. also kann es eine Einstellungssache sein. Erstell dir einfach in der Systemsteuerung unter "Mail" ein zweites Profil, und teste es dann noch mal... |
Re: Darf ich in Outlookkontakt schreiben?
Das erstellen eines eigenen Zertifikates kostet doch nicht. bestätigen muß der Anwender, ob er dem Zertifikat vertraut.
|
Re: Darf ich in Outlookkontakt schreiben?
@f.siebler
Ich bin der Admin und mein User hat auch Schreibrechte auf diesen Kontaktordner. Ich habe mal eben ein lokales Konto angelegt. Leider kann ich auch dort nicht schreiben. Das seltsame ist, dass keinerlei Fehlermeldung ausgegeben wird. Im Gegenteil, wenn ich mir direkt nach dem Schreiben die entsprechende ContactItem.Eigenschaft anzeigen lasse, wird auch der geänderte Wert angezeigt.
Delphi-Quellcode:
outlook := CreateOleObject('Outlook.Application');
NameSpace := outlook.GetNameSpace('MAPI'); Contacts := NameSpace.GetDefaultFolder(olFolderContacts).Folders.Item('ABC'); for i := 1 to Contacts.Items.Count do begin Contact := Contacts.Items.Item(i); if Trim(Contact.LastName) = 'test' then begin Contact.FirstName := 'abc'; end; end; Outlook := UnAssigned; |
Re: Darf ich in Outlookkontakt schreiben?
Moin,
das mit dem Admin sein hat mit den Exchange Einstellungen und Rechten nichts zu tun... Ansonsten einfach mal ins MSDN schauen..... da sollte was zu finden sein... |
Re: Darf ich in Outlookkontakt schreiben?
So meinte ich das auch nicht. Mein Userkonto ist als Admin auf dem Exchange eingetragen. Die Berechtigungen für den entsprechenden Kontaktordner für mein Userkonto auf "Stufe 8 (Besitzer)". Also sollte es da keine Probleme geben.
|
Re: Darf ich in Outlookkontakt schreiben?
Versuch mal mit Contact.Save zurückzuspeichern.
|
Re: Darf ich in Outlookkontakt schreiben?
DANKE :) genau das war es.
Man, jetzt wo ich den Befehl kenne, habe ich ihn auch sofort in der VB-Hilfe von Outlook gefunden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz