Mailto spinnt...

RySa

Bekanntes Mitglied
Also irgendwie komme ich nicht weiter, was ich überhaupt nicht verstehen kann. Versuche gerade das Standardmailprogramm mittels Java, mit einem vorgefertigten Text (also empfänger, betreff, und der text) zu starten. Habe 10x die mailto RFC 2368 - Spezifikation durchgelesen (http://www.ietf.org/rfc/rfc2368.txt) und kann immer noch nicht verstehen, warum mein body-teil nicht erkannt wird...(habe Thunderbird installiert). Folgender Code-Ausschnitt :
Java:
...
String email = "mailto:test@email.de?subject=subject text. &body=bodytext text text text text";
String email2[] = new String[]{"rundll32","url.dll,FileProtocolHandler",email};
Runtime.getRuntime().exec(email2);
...

Habe die Textstellen natürlich verändert, aus Datenschutzgründen, aber die Struktur blieb erhalten. Kann mir mal jemand erklären, warum der body-teil komplett verschwindet ? Empfänger und Betreff werden korrekt eingetragen, aber der Body-Teil ist ganz weg. Habe verschiedene kombinationen ausprobiert und es hat nichts gebracht. Und laut der Syntax ist dieser String korrekt aufgebaut. Kann mir da jemand weiterhelfen ? Danke im Voraus

EDIT: Sollte vlt. noch dazu sagen, dass wenn man den ?subject=text teil wegnimmt, und dann ?body=text hinter dem Empfänger schreibt, der Body teil dann funktioniert...und das ? darf man nur 1-mal benutzen, danach sollte man (der API nach) das & benutzen...bin echt am verzweifeln T_T
 
Zuletzt bearbeitet:

RySa

Bekanntes Mitglied
Was heißt denn sntsprechend ? Ich habe & , & , && , ? , ?& usw. alles durchprobiert. Auch das %26 hats nicht gebracht. Habe eben versucht mit Desktop.mail(URI) das gleiche versucht, aber da spinnt er wiederum, wenn die Umlaute als %FC etc dargestellt sind...also irgendwas stimmt doch mit dem rundll32 url.dll fileprotocolhandler nicht...

[EDIT]Also ich fange an zu glauben, dass weder das aufrufen von rundll32, noch das Desktop.mail(URI) mit Umlauten umgehen können...also mit Umlauten schon, aber mit den entsprechenden ASCII-Hexazahlen nicht. Sobald ein %FC (ü) oder ein anderes von diesen auftaucht, wird der ganze Block nicht mehr akzeptiert...und diese sind in den Dateien, aus denen ich die Daten hole genau mit dieser Notation geschrieben. Ich könnte natürlich blöd alle mit .replace("%FC","ü") usw. ändern, aber dann kann ich das ganze nicht mehr compile'en, weil mir javac ne Fehlermeldung rausschmeißt, dass das nicht mit UTF-8 "kompatibel" ist, bzw. er die Zeichen nicht erkennen kann...was nun ? Kennt jemand sonnst noch ne Bibliothek, die mal Ausnahmsweise richtig funktioniert ? :)[/EDIT]
 
T

trollololol

Gast
1) " " ist kein gültiges URL zeichen ... schon mal URLEncoder genutzt ? " " > "%20"
2) schon mal was von der klasse [japi]Desktop[/japi] gehört ? damit geht sowas besser ?
3) manueller call von rundll32 ? ich glaube da hakt etwas ganz gewaltig in deinem konzept ... denn rundll32 direkt zu callen zeigt schon das du dich viel zu weit auf eine spezifische plattform spezialisierst ... was gegen den sinn von java ... nämlich der "plattformunabhängigkeit" ... spricht ... hier solltest du dir entweder sowas wie "AutoIt" überlegen oder mal in der API-Doc nachlesen wie sowas richtig geht
 

RySa

Bekanntes Mitglied
also erstens, wenn du schon eine Antwort gibst, dann wenigstens freundlich, sonnst kannste gleich still bleiben, weil irgendwie scheint es mir so, dass du hier nicht helfen willst, sondern einfach nur den Besserwisser spielen willst, obwohl du eh keine Ahnung von hast.

Zweitens - ich hab alle Leerzeichen durch %20 ersetzt und auch das ganze mit "Desktop" versucht, das Problem bleibt sowieso, dass beides keine Umlaute in Form von ASCII-Kodierung akzeptiert...

und drittens - vielleicht möchte ich gar nicht Plattform unabhängig bleiben, weil die Zielplattform NUR windows XP ist ? Also wozu soll denn hier deine blöde Anmerkung dienen ? Habe ich hier von Plattformunabhängigkeit gesprochen ? Es ist doch ganz Simpel - entweder du willst helfen, oder du ignorierst den Thread ganz. Und wie wärs, wenn du dich hier registrierst, damit man ganz genau weißt, wer hier den Besserwisser spielt, wa ?

und sogar viertens - wenn du auch alles lesen würdest, wüsstest du auch, dass ich das ganze bereits mit Desktop.mail(URI) versucht habe...

Also nochmal ne Frage zu den Leuten, die auch helfen wollen : Weißt jemand, ob "mailto:" mit Umlauten (in Form von ASCII-Kodierungen, also %FC etc) klarkommt ? Denn bei mir scheint es nicht der Fall zu sein.

Oder liegt es vielleicht an Thunderbird/Outlook, weil diese die %FC etc. nicht erkennen können und somit das ganze rausschmeißen ?
 
Zuletzt bearbeitet:

RySa

Bekanntes Mitglied
Habe es mittlerweile über viele Umwege geschafft. Trotzdem würde ich gerne wissen, wie man mit "mailto:" Umlaute behandelt. Weißt es jemand ?

Gruß
 
G

Gast2

Gast
2) schon mal was von der klasse Desktop gehört ? damit geht sowas besser ?
Der Tipp löst doch genau das Problem.

Java:
URI uri = new URI("mailto:deineMail@mail.de?subject=Mööp%20Hällö&cc=deineMail2@mail.de");
Desktop.getDesktop().mail(uri);
 

Ähnliche Java Themen

Neue Themen


Oben