Hallo!
Ich bin dabei, E-Mails aus Outlook auszulesen. Das funktioniert auch ganz toll, ich kann auf alle Mails im Posteingang zugreifen und die Ordnerstruktur "entlangklettern". Das einzige Problem ist jetzt, dass ich in die Öffentlichen Ordner kommen muss. Ich hab Windws XP und Outlook 2000.
Wie gesagt kann ich schon auf die gesamte Inbox + andere Ordner zugreifen, hier der Ausschnitt des Programms, der Outlook startet und den Zugriff ermöglicht:
Delphi-Quelltext
1: 2: 3: 4:
| uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleServer, OutlookXP, ComObj, ActiveX, ExtCtrls, Outlook2000; |
...
Delphi-Quelltext
1: 2: 3: 4: 5:
| var Form1: TForm1; Outlook: _Application; NmSpace: NameSpace; Folder: MAPIFolder; |
...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Button1Click(Sender: TObject); var Unknown: IUnknown; Result: HResult; begin {$IFDEF VER120} Outlook := CoApplication_.Create; {$ELSE} Outlook := CoOutlookApplication.Create; {$ENDIF}
NmSpace := Outlook.GetNamespace('MAPI'); NmSpace.Logon('', '', False, False); Folder := NmSpace.GetDefaultFolder(olFolderInbox); Folder.Display;
ListAllItemsBox1(); end; |
dazu einen Auszug aus:
www.microsoft.com/ge...k2002.mspx?mfr=true:
Zitat: |
Arbeiten mit Outlook-Ordnern und -Elementen ab Outlook 2002
Outlook-Elemente (z.B. E-Mail-Nachrichten, Termine, Aufgaben usw.) sind in Outlook-Ordnern enthalten. Diese ähneln den Dateiordnern im Windows-Dateisystem. Das MAPIFolder-Objekt kann sowohl Outlook-Ordner als auch -Elemente enthalten. Zudem können Sie die Folders-Auflistung verwenden, um MAPIFolder-Objekte auf einer bestimmten Ebene in der Outlook-Ordnerhierarchie zurückzugeben.
Die GetDefaultFolder-Methode gibt basierend auf dem FolderType-Argument den Standardordner aus (so gibt z.B. die olFolderInbox-Konstante den Ordner Posteingang für den derzeit angemeldeten Benutzer zurück). Darüber hinaus gibt es u.a. folgende Standardordner:
• Den Ordner Kalender (olFolderCalendar), der AppointmentItem-Objekte enthält (Besprechungen, einmalige Termine oder Serienbesprechungen oder -termine).
• Den Ordner Kontakte (olFolderContacts), der ContactItem-Objekte und DistListItem-Objekte enthält.
• Den Ordner Gelöschte Objekte (olFolderDeletedItems).
• Den Ordner Entwürfe (olFolderDrafts).
• Den Ordner Journal (olFolderJournal), der JournalItem-Objekte enthält.
• Den Ordner Notizen (olFolderNotes), der NoteItem-Objekte enthält.
• Den Ordner Postausgang (olFolderOutbox).
• Den Ordner Gesendete Objekte (olFolderSentMail).
• Den Ordner Aufgaben (olFolderTasks), der TaskItem-Objekte enthält.
• Den Ordner Alle öffentlichen Ordner (olPublicFoldersAllPublicFolders). |
Leider funktioniert nun die Variante mit olFolderInbox, aber die mit olPublicFoldersAllPublicFolders nicht... "EOleException - Der Vorgang kann nicht erfolgreich abgeschlossen werden; mindestens ein Parameterwert ist nicht gültig".
Ich habe definitiv einen Ordner "Alle öffentlichen Ordner", also weiß ich nun nicht, woran es liegen kann.
Eine Idee?
