Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Darf ich in Outlookkontakt schreiben? (https://www.delphipraxis.net/95354-darf-ich-outlookkontakt-schreiben.html)

PASST 5. Jul 2007 12:42


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:
  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;
Kann und darf ich überhaupt mit Delphi die bestehenden Outlookkontakte ändern?

Gruß
Peter

mkinzler 5. Jul 2007 12:45

Re: Darf ich in Outlookkontakt schreiben?
 
Kommt auf die Sicherheitseinstellungen von Outlook an.

PASST 5. Jul 2007 13:16

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

PASST 5. Jul 2007 15:18

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?

f.siebler 5. Jul 2007 15:27

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.... :-)

PASST 5. Jul 2007 15:29

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.

mkinzler 5. Jul 2007 15:29

Re: Darf ich in Outlookkontakt schreiben?
 
Die werden ihre Anwendung signiert haben.

f.siebler 5. Jul 2007 15:30

Re: Darf ich in Outlookkontakt schreiben?
 
dann sollte es ja möglich sein die dll's etc. von Nokia zu nutzen :-)

PASST 5. Jul 2007 15:32

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 ;)

mkinzler 5. Jul 2007 15:33

Re: Darf ich in Outlookkontakt schreiben?
 
Du könntest deine Dll auch signieren und dein Zertifikat manuell (einmalig) bestätigen lassen.

PASST 5. Jul 2007 15:35

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?

f.siebler 5. Jul 2007 15:36

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...

mkinzler 5. Jul 2007 15:37

Re: Darf ich in Outlookkontakt schreiben?
 
Das erstellen eines eigenen Zertifikates kostet doch nicht. bestätigen muß der Anwender, ob er dem Zertifikat vertraut.

PASST 5. Jul 2007 15:49

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;

f.siebler 5. Jul 2007 15:52

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...

PASST 5. Jul 2007 15:54

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.

mkinzler 5. Jul 2007 15:55

Re: Darf ich in Outlookkontakt schreiben?
 
Versuch mal mit Contact.Save zurückzuspeichern.

PASST 5. Jul 2007 15:58

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