Java Desktop Mail, vorbereitete Mail

delphiking1980

Bekanntes Mitglied
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.

Java:
 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);
        }
    }
 
Was für Sonderzeichen sollen denn nicht erlaubt sein? Bei mir funktioniert eigentlich alles, auch Zeilenumbrüche, man muss es nur entsprechend codieren.

Java:
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"));
 
Zuletzt bearbeitet:
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 ...
 
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 :/
 
Was für Sonderzeichen sollen denn nicht erlaubt sein? Bei mir funktioniert eigentlich alles, auch Zeilenumbrüche, man muss es nur entsprechend codieren.

Java:
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"));

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......
 
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 ...
 

Zurück
Oben