# URI Problem bei Parametern fuer Outlook



## FenchelT (23. Mai 2007)

Hallo zusammen,

auf folgende Weise versuche ich vorerst zu Testzwecken eine Standard-MailClient email zu erzeugen.
In meinem Fall ist der Standard-MailClient Outlook 2k3.


```
package org.Utilities;

public class Starter 
{

	public static void main(String[] args) 
	{
		MyMail email = new MyMail("geht.nicht@irgendwo.de", 
								  "Test_Subject", 
								  "Hallo_Auto");
		
		email.prepare();
		
	}
}
```



```
package org.Utilities;

import java.awt.*;
import java.net.URI;

public class MyMail 
{
	Desktop desktop = null;
	String mailTo = "";
	String subject = "";
	String body = "";
	
	
	
	public MyMail(String n, String s, String b)
	{
		this.mailTo		= n;
		this.subject	= s;
		this.body 		= b;
	
	} // End Konstruktor
	
	
	public void prepare()
	{
		
		if (Desktop.isDesktopSupported())
		{
			desktop = Desktop.getDesktop();
			try
			{
				URI uriMailTo = new URI("mailTo:" + this.mailTo+ "?Subject=" + this.subject +"&BODY=" + this.body);
				desktop.mail(uriMailTo);
				
		
			}// End try
			catch (Exception ex)
			{
				System.out.println("Hat nicht sollen sein \n\n" + ex);
				
			} // End catch
		}
		else
		{
			System.out.println("Funktion wird erst ab Java6 unterstützt. Bitte installieren!");
			
		} // End if
		
	} // End void prepare()
	
} // End class
```


Das funktioniert soweit auch ohne Probleme. Lasse ich allerdings bei den Parametern die unterstriche weg, (z.B. Test Subject anstatt Test_Subject) funktioniert es nicht mehr. 

Fehlermeldung:

```
java.net.URISyntaxException: Illegal character in opaque part at index 42: mailTo:geht.nicht@irgendwo.de?Subject=Test Subject&BODY=Hallo_Auto
```


Wie uebergibt man Parameter so, dass die Leerzeichen nicht als Fehler gelten?


Vielen Dank und viele Gruesse
FenchelT


----------



## norman (23. Mai 2007)

ich schätze du musst sie html-encoden. also %25 oder so für leerzeichen..


----------



## FenchelT (23. Mai 2007)

Hallo Norman,

danke erstmal fuer DEine Antwort, obwohl ich mir das kaum vorstellen kann.
Ich habe das ganze hieraus
entlehnt, wollte aber die GUI nicht dazu haben.

Wenn ich mir das Beispiel so ansehe, sollte es so funktionieren.  :bahnhof: 


Sonst noch eine Idee?


----------



## FenchelT (25. Mai 2007)

So,

habe die LOesung   

Die URI Angabe muss so lauten:


```
URI uriMailTo = new URI("mailTo", this.mailTo + "?Subject=" + this.subject + "&BODY=" + this.body, null);
```


Viele Gruesse
FenchelT


----------



## Martin2k (24. Jan 2008)

Hallo,

zuerstmal danke für die hier gepostete Lösung zu diesem Problem, das hat mir schon etwas geholfen. 

nun kann ich als body also einen String angeben, der auch leerzeichen enthält. 

ich möchte jedoch als body eine verschlüsselte signatur angeben und erhalte dabei folgende fehlermeldung: 

*


		Code:In die Zwischenablage kopieren


java.io.IOException: Failed to open mailto:J.Krensing@web.de?subject=Signierter%20Key&body= ***hier folgt mein body*** Error message: Zugriff verweigert

*
Weiß jemand, wie ich das Problem lösen kann? Es muss wohl mit den Sonderzeichen im Body oder mit der Länge der Anweisung zu tun haben...vermute ich!


*
der body den ich einfügen will/muss, sieht bspw. wiefolgt aus: *

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.7 (MingW32)

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
UnyWWhl/vWvqodlTCEcROaJNm+oOqw==
=SluV
-----END PGP MESSAGE-----


----------

