Ö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?