2 Stimmen

Öffnen von Mails in Outlook aus Java über das Protokoll "mapi://"

Ich habe eine Java-Anwendung entwickelt, die die Windows-Desktop-Suche verwendet und mit der ich einige Informationen über Dateien auf meinem Computer abrufen kann, z. B. URLs ( System.ItemUrl ). Ein Beispiel für eine solche Url ist

file://c:/users/ausername/documents/aninterestingfile.txt

für "normale" Dateien. In diesem Feld werden auch die URLs der von Outlook oder Thunderbird indizierten E-Mail-Elemente angezeigt. Die Elemente von Thunderbird (nur unter Vista und Seven verfügbar) sind ebenfalls Dateien (.wdseml). Aber die URLs von Outlook-Elementen beginnen mit "mapi://" wie :

mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/

Das Problem, das ich habe, ist das Öffnen des realen Elements aus Java in Outlook mit dieser URL. Wenn ich sie in den Ausführen-Dialog von Windows kopiere/einfüge, funktioniert es; es funktioniert auch, wenn ich "start" gefolgt von der kopierten/eingefügten URL in der Befehlszeile verwende.

Die Url scheint in UTF-16 kodiert zu sein. Ich möchte in der Lage sein, solchen Code zu schreiben:

String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/";

Runtime.getRuntime().exec("cmd.exe /C start " + url);

Es funktioniert nicht, und ich habe andere Lösungen ausprobiert, z. B. :

String start = "start";
String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/";

FileOutputStream fos = new FileOutputStream(new File("test.bat");
fos.write(start.getBytes("UTF16");
fos.write(url.getBytes("UTF16"));
fos.close();

Runtime.getRuntime().exec("cmd.exe /C test.bat");

ohne jeden Erfolg. Mit der obigen Lösung enthält die Datei "test.bat" die korrekte URL und den Befehl "start", aber die Ausführung von "test.bat" führt zu der bekannten Fehlermeldung :

'' is not recognized as an internal or external command, operable program or batch file.

Hat jemand eine Idee, wie man "mapi://"-Elemente von Java aus öffnen kann?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X