# Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang:



## Ulathar (13. Mai 2011)

Hallo Forum,

ich stehe gerade vor einem scheinbar unlösbarem Problem betreffend des anhängens von Dateien an eine Mail aus Java heraus.

Was ich will:
Aus meinem Java-Programm heraus den Default Mail Client der Plattform starten und eine neue Email mit Subject, Zieladresse, Body und diverser Logfiles vorbereiten.

Ich mache dies folgendermaßen:


```
String command =  "mailto:" + mailto +
		 				 "?subject=" + subject + 
		 				 "&cc=" + cc +
		 				 "&bcc=" + bcc +
		 				 "&body=" + body +
		 				 "&attachment=file:///" + attach1;

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


Soweit so gut, mein Thunderbird startet, Zieladresse, Subject, Body, alles passt, nur ich bekomm einfach keinen Anhang zu sehen, egal wie ich es auch drehe und wende.
Mr.Google lieferte diverse Treffer zu dem Thema die vermuten lassen, dass es aus irgendwelchen mir nicht einleuchtenden Sicherheitsbedenken von Thunderbird wohl so gehalten wird, dass bei mailto: aufrufen der "attachment" Flag so lange ignoriert wird, so lang man nocht den Schalter -compose voranstellt.

So mein Problem ist nun:
Wie kann ich das aus meinem Javaprogramm heraus lösen? Zumal mein Programm nicht nur auf Plattformen ausgeführt wird, die Thunderbird nutzen, sondern z.B. auch Outlook in verschiedensten Versionen.
Meines Wissens nacht ist es nicht möglich der URI den -compose Flag mit zu geben oder?

Wäre für jeden Tipp dankbar!


----------



## Ulathar (28. Mai 2011)

Einmal ein push ehe ich das Thema sterben lasse, das Problem besteht immer noch aber ich fürchte es gibt dafür keinen "workaround"?

(54 Views und keiner ne Idee?)


----------



## Marcinek (28. Mai 2011)

Ist "attach1" der absolute pfad zur Datei?


----------



## Ulathar (28. Mai 2011)

Ja.

Hier mal ein erzeugter beispiel mailto String meines Programms (auszug aus meinem loggerthread):


```
Preparing Mail: 
mailto:ZENSIERT@ZENSIERT.com?subject=[PROJECTNAME]-Errorreport-&cc=&bcc=&body=Bitte%20die%20Nachricht%20an%20den%20Entwickler%20eingeben!&attachment=file:///E:/Coding/PROJECT/RELEASE/log/err.txt
Done!
```

Wie gesagt, das vorbereiten der diversen Clients (so fern einer installiert ist) funktioniert einwandfrei.
Zumindest was Subject, Topic, Body, cc, bcc etc betrifft. Lediglich attatchments klappen nicht und laut google scheint das je nach client "absicht" zu sein aus angeblichen sicherheitstechnischen gründen...

Habe es bis dato so gelöst, dass beim senden eines fehlerberichts der User von meinem Programm darauf hingewiesen wird welche dateien angehängt werden müssen und wo diese zu finden sind, das ist aber "unschön" .


----------

