Hi ich möchte den Anwender meiner Software die Möglichkeit bieten Excpetion per Mail an mich senden zu können. Dazu verwende ich folgende Methoden (stark vereinfacht):
exceptionText = String mit folgender Syntax: <html><head><title></title></head><body>java.lang.NumberFormatException: For input string: "122q4"
at java.lang.NumberFormatException.forInputString(Unknown Source)</body></html>
Also im Prinzip die Exception in HTML eingebettet.
Hinweis: getBody(...) ist noch nicht optimiert.
getBody(...) soll alle HTML-Sonderzeichen, sowie alle HTML-Tags entfernen und einen mailto URL scheme (RFC 2368)-konformen String zurückgeben.
Das tut sie auch, wenn der jedoch im lokalen eMail-Programm angezeigt wird, enthält dieser jedoch die Sonderzeichen (also %22 anstatt \).
Jetzt zu meiner Frage. Hat jemand eine Idee wie ich einen komplexen mailto URL scheme (RFC 2368) konformen Text angeben kann?
THX!
Gruß,
nocxsville.
Code:
final URI emailURI = new URI("mailto:" + [email]addy@provider.com[/email] + "?subject=" + "SUBJECT" + "&body=" + this.getBody(exceptionText));
exceptionText = String mit folgender Syntax: <html><head><title></title></head><body>java.lang.NumberFormatException: For input string: "122q4"
at java.lang.NumberFormatException.forInputString(Unknown Source)</body></html>
Also im Prinzip die Exception in HTML eingebettet.
Code:
private final String getBody(final String i_exceptionText) {
String returnValue = "Version: " + "12345" + "%0D%0A%0D%0A" + i_exceptionText;
returnValue = returnValue.replace("<html><head><title></title></head><body>", "");
returnValue = returnValue.replace("</body></html>", "");
returnValue = returnValue.replace("
", "%0D%0A");
returnValue = returnValue.replace(" ", "%20");
returnValue = returnValue.replace(",", "%2C");
returnValue = returnValue.replace(";", "%3B");
returnValue = returnValue.replace("?", "%3F");
returnValue = returnValue.replace("%", "%25");
returnValue = returnValue.replace("<", "%3C");
returnValue = returnValue.replace(">", "%3E");
returnValue = returnValue.replace("&", "%26");
returnValue = returnValue.replace("\"", "%22");
return returnValue;
}
Hinweis: getBody(...) ist noch nicht optimiert.
getBody(...) soll alle HTML-Sonderzeichen, sowie alle HTML-Tags entfernen und einen mailto URL scheme (RFC 2368)-konformen String zurückgeben.
Das tut sie auch, wenn der jedoch im lokalen eMail-Programm angezeigt wird, enthält dieser jedoch die Sonderzeichen (also %22 anstatt \).
Jetzt zu meiner Frage. Hat jemand eine Idee wie ich einen komplexen mailto URL scheme (RFC 2368) konformen Text angeben kann?
THX!
Gruß,
nocxsville.