Yeah, das war das Stichwort! Extended
MAPI! Ich depp...
Ich hab mir die neusten
MAPI Headers runtergeladen:
MAPI_Headers
Und dann noch die
MAPI Services von Evocorp
MAPI Services
Wenn man das ganze nicht als Service ausführen möchte, so muss man noch in den Sources der
MAPI Services folgendes ändern:
Bei der Funktion MapiServicesLogOn nur das Flag MAPI_EXTENDED sein lassen, die restlichen löschen.
Und schon kann ich auf alle Daten von Outlook zugreifen, ohne eine Sicherheitsabfrage von Outlook.
Beispielcode:
Delphi-Quellcode:
uses
MapiServices;
procedure DisplayMyMailItems;
var InBox: TInbox;
MailItem: TMapiMailItem;
begin
// Insert your actual account name in place
// of MyAccountName, for instance "Bloggs, Joe"
InBox := TInBox.Create('MyAccountName');
try
MailItem := InBox.GetFirst;
while Assigned(MailItem) do
begin
ShowMessage('From: ' + MailItem.Sender + #13#10 +
'Subject: ' + MailItem.Subject);
// Do what you need to do here
// ...
// and then release MailItem.
MailItem.Free;
MailItem := InBox.GetNext;
end;
finally
InBox.Free;
end;
end;
Und wenn man nun mit GetSender (oder MailItem.Sender) lieber die Email statt den Namen haben möchte, so ersetzt man einfach in der GetSender Funktion den Wert PR_SENDER_NAME mit PR_SENDER_EMAIL_ADDRESS.
Das ganze hab ich jetzt aber so schlecht hingeschlurft, dass ich noch kein Codebeispiel von mir uppe. Aber ich säubere mal meinen Code und dann gibts den Code später noch dazu.
Danke marabu, du hast mich auf den richtigen Weg gebracht.