AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Outlook Bilder auslesen

Ein Thema von DocBorn · begonnen am 7. Jul 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#1

Outlook Bilder auslesen

  Alt 7. Jul 2006, 07:24
Hallo Allgemeinheit,

bin eigentlich schon ne ganze Weile länger hier registriert, allerdings scheint das Passwort zusenden bei Verlust nicht zu funktionieren, musste mir jedenfalls jetzt einen neuen Benutzer anlegen (mein Alter heißt digleu). Soooaaa, nachdem ich also zur Genüge google und die Suchfunktion verschiedener Foren bemühte habe, habe ich mich dann also dazu entschieden mal nen Beitrag zu schreiben.

Ich bin relativ frisch was OLE in Outlook angeht, komme aber jetzt in die Verlegenheit alle Outlook-Kontakte in mein Programm importieren zu müssen. Dazu habe ich schonmal folgenden Programmcode zusammengesucht (und auch soweit verstanden ):
Delphi-Quellcode:
procedure TfrmOutlookSync.loadOutlookContacts;
const
  olFolderContacts = $0000000A;
var
  outlook, NameSpace, Contacts: OleVariant;
  i: Integer;
  MMContact: TMMOutlookContact;
begin
  listMain.Items.BeginUpdate;
  try
    listMain.Items.Clear;
    try
      outlook := CreateOleObject('Outlook.Application');
      NameSpace := outlook.GetNameSpace('MAPI');
      Contacts := NameSpace.GetDefaultFolder(olFolderContacts);
      for i := 1 to Contacts.Items.Count do
      begin
        MMContact := TMMOutlookContact.Create;
        try
          MMContact.ReadFromOle(Contacts.Items.Item(i));
          listMain.Items.AddObject(IntToStr(i) + '. ' + MMContact.getFullName, MMContact);
        except
          listLog.Items.Add('Fehler bei i='+IntToStr(i));
        end;
      end;
      Outlook := UnAssigned;
    except
      ShowMessage('Beim importieren ist ein Fehler aufgetreten. Möglicherweise ist Outlook nicht konfiguriert.');
    end;
  finally
    listMain.Items.EndUpdate;
  end;
end;
Dabei ist TMMOutlookContact eine von mir selbst erstellte Klasse, der ich einfach das entsprechende Variant Datenkonstrukt mit .readFromOle übergebe:
Delphi-Quellcode:
procedure TMMOutlookContact.ReadFromOle(AppOle: OleVariant);
begin
  // Contact := AppOle as ContactItem;
  FNachname := AppOle.Lastname;
  FVorname := AppOle.FirstName;
  FWeitererVorname := AppOle.MiddleName;
end;
und .getFullName gibt einfach den Namen des Kontakts zurück. listMain ist eine Listbox wo ich das alles mal testweise anzeige, listLog ein Fehlerlog.
Soa jetzt habe ich auch schon eine Liste von möglichen Eigenschaftsnamen dieses OleVariants im Internet gefunden und könnte damit schon an sehr viele Informationen kommen (gibts da irgendwo vielleicht eine vollständige Liste?), mein Problem ist allerdings, dass man in Outlook ja auch Bilder an seine Kontakte dranhängen kann und ich auch diese gerne auslesen würde. Habe nämlich keinen blassen Schimmer, wie der Eigenschftsname heißen könnt (.Image oder so?) und selbst wenn ich es wüsste hätte ich keine Ahnung wie ich die Daten in nen Stream oder in ne Datei bekommen könnte (letztenendlich solls in einer Datenbank abgelegt werden, aber das bekomme ich hin, weiß halt nur nicht wie ich an die Daten aus den Outlook-Kontakten drankommen soll).

Danke für jede Hilfe im Vorraus und schonmal einen guten Start in den Tag

viel Grüße
Lars
  Mit Zitat antworten Zitat
Dale

Registriert seit: 7. Apr 2006
Ort: Alsdorf
42 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 09:28
Hallo Lars,

versuch mal folgenden Code:

Delphi-Quellcode:
var aContactItem : OleVariant;
...
for i := 1 to Contacts.Items.Count do
  aContactItem := Contacts.Item(i)
  aContactItem.Attachments.Add('c:\IrgendeineDatei.txt', olByValue, 10000, 'Ein Name für den Anhang');
  aContactItem.Save;
end;
Gruß Dale
  Mit Zitat antworten Zitat
DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#3

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 12:41
Hi Dale,

ich glaube das was dein Code macht ist ein neues Attachment hinzufügen und das ist ja genau das Gegenteil von dem was ich machen will ... aber vielleicht ist der Trick das Bild als Attachment an den Contact-Datensatz zu betrachten, damit werde ich mal rumprobieren und bescheidgeben, wenn ich was brauchbares gefunden habe oder verzweifelt bin. Wenn bis dahin allerdings schon jemand ne gute Idee hat bin ich dafür natürlich dankbar .

Lg Lars
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 13:06
Hallo Lars,

du kannst das Erzeugen und Initialisieren deines Objektes zusammenfassen - mit einem speziellen Konstruktor oder so:

Delphi-Quellcode:
function CreateMMOutlookContact(contact: OleVariant): TMMOutlookContact;
begin
  Result := TMMOutlookContact.Create;
  with contact as ContactItem do
  begin
    Result.FNachname := Lastname;
    Result.FVorname := FirstName;
    Result.FWeitererVorname := MiddleName;
  end;
end;
Aber das nur nebenbei.

Zitat von DocBorn:
Soa jetzt habe ich auch schon eine Liste von möglichen Eigenschaftsnamen dieses OleVariants im Internet gefunden und könnte damit schon an sehr viele Informationen kommen (gibts da irgendwo vielleicht eine vollständige Liste?)
Es gibt sie - in der Outlook Online-Hilfe. Wenn ich richtig gezählt habe sind es beim ContactItem von OL2002 152 Eigenschaften - Bilder sind dabei Attachments.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip contactitem-props_164.zip (1.005 Bytes, 13x aufgerufen)
  Mit Zitat antworten Zitat
Dale

Registriert seit: 7. Apr 2006
Ort: Alsdorf
42 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 13:37
du hast natürlich vollkommen recht, ich Dusel!
Folgender Code ist dann wohl besser:

Delphi-Quellcode:
var lNameSpace : NameSpace;
    lFolder : MAPIFolder;
    lItemColl : Items;
    i, j : Integer;
    lElement : OleVariant;
    lContact : ContactItem;
begin
  OutlookApplication1.Connect;
  lNameSpace := OutlookApplication1.GetNamespace('MAPI');
  lFolder := lNamespace.PickFolder;
  lItemColl := lFolder.Items;
  IF lItemColl.Count > 0 THEN
    BEGIN
      FOR i := 1 to lItemColl.Count do
        BEGIN

          // Anlagen speichern
          IF (lElement.Attachments.Count > 0) THEN
            BEGIN
              FOR j:= 1 to lElement.Attachments.Count DO
              lElement.Attachments.Item(j).SaveAsFile(
                Format('c:\Anlagen\%s', [lElement.Attachments.Item(j).FileName]));
            END;
        END;
    END;
  OutlookApplication1.Disconnect;
end;
Gruß Dale
  Mit Zitat antworten Zitat
DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#6

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 14:09
jeppa auf so einen Code bin ich jetzt auch gekommen . Allerdings rechne ich halt damit, dass nur ein Bild an einem Contact dran hängt ... und es funktioniert *lufspring*

dankö
  Mit Zitat antworten Zitat
DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#7

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 15:48
hm ich hätte jetzt doch noch eine Frage:

Fernziel hier ist eine Synkronisation mit Outlook (weil das so den Weg auf alle möglichen MDAs etc. darstellt), dabei währe es sehr günstig eine Art ID für die Datensätze zu haben, hat dieser OleVariant Datentyp irgendeine Property, die einen Datensatz in Outlook eindeutig identifiziert? Damit Änderungen in Outlook von meiner Applikation bemerkt und in die Datenbank übernommen werden können.

Naja und dann würde mich mal so generell interessieren ob es irgendwo eine List gibt auf der _alle_ Properties von diesem Outlook-Contact drauf stehen. Habe jetzt schon so eine 30-40 Punkte lange Liste, allerdings ist das ja garantiert noch nicht alles (da kann man ja schon alleine 15 verschiedene Telefonnummern oder so speichern).

Danke im Voraus

Lg Lars
  Mit Zitat antworten Zitat
Dale

Registriert seit: 7. Apr 2006
Ort: Alsdorf
42 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 15:54
diese Liste hatte marabu bereits zum Download an seinen Beitrag gehängt: marabus Beitrag

Gruß Dale
  Mit Zitat antworten Zitat
DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#9

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 15:57
*dau*

okidoki da stehen ja einige Dinge wie "EntryID" oder so drin, damit sollte ich ja was gebacken bekommen ....

dankööö
  Mit Zitat antworten Zitat
DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#10

Re: Outlook Bilder auslesen

  Alt 7. Jul 2006, 16:54
k ich glaube die EntryID ist genau das was ich gesucht habe .... Danke nochmal
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 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