Öffnen Sie Mails in Outlook aus Java mit dem Protokoll "mapi: //"

Ich entwickle eine Java-Anwendung mit der Windows-Desktopsuche, über die ich Informationen zu 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 URLs von E-Mail-Nachrichten angezeigt, die in Outlook oder Thunderbird indiziert wurden. Thunderbirds Artikel (nur mit Vista und Seven verfügbar) sind ebenfalls Dateien (.wdseml). Die Artikel-URLs von Outlook beginnen jedoch mit "mapi: //" wie:

mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/[email protected]($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가

Das Problem, das ich habe, öffnet das reale Einzelteil von Java in Outlook unter Verwendung dieser URL. Wenn ich es im Startdialog 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}/[email protected]($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가";

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

Ich arbeite nicht und habe andere Lösungen ausprobiert wie:

String start = "start";
String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/[email protected]($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 Erfolg. Unter Verwendung der obigen Lösung enthält die Datei "test.bat" die richtige URL und den Befehl "start". Die Ausführung von "test.bat" führt jedoch zu der bekannten Fehlermeldung:

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

Hat jemand eine Idee, "mapi: //" -Elemente aus Java öffnen zu können?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage