# Java Desktop Mail, vorbereitete Mail



## delphiking1980 (22. Mrz 2012)

Hallo,

ich habe folgende Methode um die E-Mail dem Benutzer vorzubereiten nun stellt sich mir die Frage warum keine Sonderzeichen erlaubt sind ?

Wahrscheinlich liegt es an dem Zeichensatz welcher von der URI nicht unterstützt wird, oder ?

Was schade wäre denn ein Zeilenumbruch und eine Spitzeklammer wären schon was schönes wenn ich ein Stacktrace mir senden lassen würde.

Vieleicht kennt ja jemand einen Workaround oder ein Escapezeichen für die Zeichen.


```
private void openDesktopMailApplication() {
        String eMailAdresse = "blabla@blabla.de";
        String betreff = "BugInfo%20BlaBla";
        String body = getFehlermeldung(false).replaceAll(" ", "%20").replaceAll("\r", "").replaceAll("\n", "").replaceAll("<", "").replaceAll(">", "").replaceAll("#", "");
        System.out.println(body);
        String command = "mailto:" + eMailAdresse + "?subject=" + betreff + "&body=" + body;

        try {
            Desktop.getDesktop().mail(new URI(command));
        } catch (Exception e) {
            e.printStackTrace(System.err);
        }
    }
```


----------



## HoaX (22. Mrz 2012)

Was für Sonderzeichen sollen denn nicht erlaubt sein? Bei mir funktioniert eigentlich alles, auch Zeilenumbrüche, man muss es nur entsprechend codieren.


```
Desktop.getDesktop().mail(new URI("mailto:test@host.invalid?subject=Hallo%20Welt&body=Servus%20Delphiking1980%2C%0Abei%20mir%20funktioniert%20alles%2C%20auch%20%C3%A4%C3%B6%C3%BC%20und%20%20%3Cspitze%20Klammern%3E...%0Adu%20machst%20also%20scheinbar%20was%20falsch%20%3B%29%0AGr%C3%BC%C3%9Fe%20%26%20so...%0A%0AHoaX"));
```


----------



## irgendjemand (22. Mrz 2012)

bau dir lieber was eigenes mit der JavaMail-API ... schließt auch probleme aus wenn der user keinen mail-client installiert / eingerichtet hat ...

btw : es gibt eine maximal-länge was URLs und URIs angeht ... sowie fest definierte codecs um sonderzeichen darzustellen ...


----------



## Gast2 (22. Mrz 2012)

irgendjemand hat gesagt.:


> bau dir lieber was eigenes mit der JavaMail-API ... schließt auch probleme aus wenn der user keinen mail-client installiert / eingerichtet hat ...
> 
> btw : es gibt eine maximal-länge was URLs und URIs angeht ... sowie fest definierte codecs um sonderzeichen darzustellen ...



Hm das geht leider nicht immer. Ich stand vor einem ähnlichen Problem, denn ich muss Anhänge verschicken, was bekanntlich nciht geht mit einer mailto URI. 

Wenn mann jedoch selber eine Mail bauen will, so muss man auch einen validen MailAccoutn haben von dem aus man die Mail schickt. Dafür gibt es nun 2 Lösungen: 

1) Eine eigene Absendermail welche als Standard genommen wird! (Unglücklich, da man so den tatsächlichen Absender nicht unbedingt kennt) 
2) Der Nutzer muss seine Email Eckdaten eingeben was er mit Sicherheit sehr gerne macht 

Wenn man also eine maximal einfache Möglichkeit bieten will eine Mail zu versenden ist die mailto Variante zu preferieren. Leider halt nur eingeschränkt. 

Eine Optimallösung für solche Support Mails hab ich auch noch nicht gefunden. Bin aber auch für alle Hinweise dankbar :/


----------



## delphiking1980 (22. Mrz 2012)

HoaX hat gesagt.:


> Was für Sonderzeichen sollen denn nicht erlaubt sein? Bei mir funktioniert eigentlich alles, auch Zeilenumbrüche, man muss es nur entsprechend codieren.
> 
> 
> ```
> ...



Ja das stimmt man muss es nur richtig machen :toll:

Das Problem was ich nun habe ist das ich die Anzahl der möglichen Zeichen in einer URL mit meinem Stacktrace leicht überschreite......


----------



## irgendjemand (22. Mrz 2012)

ja .. ist mir auch klar ... ich würde auch nicht einfach blind meine mail-daten in ein wild-fremdes programm eingeben ...

aber was macht man wenn der user wie gesagt kein mail-client eingerichtet hat weil er diesem eben so wenig traut ?

auch ist das problem der zeichenlänge ...

das vermutlich effektivste wäre wohl das ganze in ein file zu schreiben ... und den user mit einem dialog zu informieren wo er dieses auf der entwicklerseite hochladen kann ... zzgl seiner mail-adresse sowie vllt einem namen ...


----------

