# Javamail:Probleme mit der Darstellung von Umlaute in Subject



## kemit (13. Okt 2011)

Hallo an alle 

Ich habe folgende Problem,ich versuche ein Email mit Javamail zu senden der ein Subject hat  der Umlaute behinhaltet bzw ü Owohl ich mit UTF-8 versucht das Zeichen richtig darzustellen bekomme ich für die Darstellung des ü:  Ã¼.Woran kann das liegen ?

Ein Teil der Code :
	
	
	
	





```
message.setSubject(subject, "UTF-8");
```

Danke


----------



## thE_29 (13. Okt 2011)

Nur beim Subject ist das Problem? Wenn du im body was schickst, da hast du deine Sonderzeichen?


----------



## timbeau (13. Okt 2011)

Was passiert wenn du:

setSubject("öäü" , "utf-8")

versendest?


----------



## kemit (13. Okt 2011)

@The_29

Ich habe nur Sonderzeichen in Subject ich probiert nocht in Body

@Timbeau 

Ich bekomme diese Zeichen als antwort :Ã¶Ã¤Ã¼ 

Danke


----------



## Atze (13. Okt 2011)

auch nur gegoogelt:

java - Javamail changing charset of subject line - Stack Overflow

vielleicht hilft das


----------



## timbeau (13. Okt 2011)

Wie sieht der Rest aus? Header Information etc.?


```
String encoding = "utf-8";
			
			// new mimemessage
			MimeMessage msg = new MimeMessage(session);

			// set recipients
			msg.setFrom(new InternetAddress(senderAddress));

			// prepare a MimeBodyPart for the content/text
			MimeBodyPart textBodyPart = new MimeBodyPart();

			textBodyPart.setText(text, encoding);
			textBodyPart.setDisposition(MimeBodyPart.INLINE);

			msg.setSubject(subject, encoding);

			// Attachment
			MimeBodyPart attachement = new MimeBodyPart();
			attachement.setDataHandler(new DataHandler(new FileDataSource(
					file2send)));
			attachement.setFileName(file2send.getName());
			attachement.setDisposition(MimeBodyPart.ATTACHMENT);

			// add parts to main-message
			MimeMultipart mimeMultipart = new MimeMultipart();
			mimeMultipart.addBodyPart(textBodyPart);
			mimeMultipart.addBodyPart(attachement);

			msg.setContent(mimeMultipart);

			// Header
			msg.setSentDate(new Date());
```

Beispiel von mir, welches Umlaute korrekt versendet.


----------



## thE_29 (13. Okt 2011)

IMHO verschickt der das auch mit UTF-8, nur hat sein Mailclient Probleme das darzustellen...

Die Frage ist halt, auf welchen Codec der MailClient basiert...


----------



## nillehammer (13. Okt 2011)

Du musst noch das Transfer Encoding auf "quoted printable" umstellen. UTF-8-Zeichen sind nämlich manchmal 2-bytig und können deswegen nicht als plain ASCII verschickt werden.


----------



## kemit (13. Okt 2011)

@Azte 

Danke aber ich schon diese funktion probiert aber hatte das selbe Problem 
@Timbeau 

Danke Ich habe nur  Problem mit dem Subject da ich nur dort ein Umlaute habe ,aber es schein das selbe als ich gemacht habe zumindesten für den Subject : dein :
	
	
	
	





```
msg.setSubject(subject, encoding);
```
 meine 
	
	
	
	





```
message.setSubject(subject, "UTF-8");
```
 hst du selbst probiert un bekomme tasälich Umlaute in Subject?


----------



## timbeau (13. Okt 2011)

Ich sehe schon, dass unsere setSubject-Methode die gleiche ist. Das ganze läuft auch halbwegs produktiv und ist bei ca 800 Adressaten korrekt angekommen, zumindest wenn die Antwort mit Zitat gesendet wurde. Teste meine Methode und schau ob es daran liegt, dass du irgendwelche Header Informationen setzt oder auch nicht setzt.


----------



## kemit (14. Okt 2011)

Hallo an alle

Nochmal Danke für ihre schnell Antwort.Villeicht sollte ich noch dazu erganzen daß der Projet ist ein Maven Gwt Project und der Bodyteils der Email befindet sich auf eine Html Seite.Ich glaube das ist das Poblem ,ich habe gerade versucht ein Mail mit ein einfach Console Applikation zu senden und die Umlauten werden ohne Problem richtig dargestellt sogar ohne der Subject auf UTF-8 zu setzen also:
	
	
	
	





```
message.setSubject(subject);
```
.

Danke


----------



## kemit (14. Okt 2011)

@Nillehammer

habe auch das gemacht aber wird immer nicht richtig dargestellt,vielleicht habe ich falsch angesezt :

```
message.setSubject("öäü"), "UTF-8");
           message.setSubject("Content-Transfer-Encoding","quoted-printable");
```

Gruß


----------



## maki (14. Okt 2011)

Die Windows "Konsole", also cmd.exe, "spricht" gar kein UTF-8 sondern einen anderen Zeichensatz.

Wenn du in deiner IDE Umlaute eintippst, in welchem Zeichensatz machst du das denn? 
Sprich, was sind die Einstellungen für das Projekt in der IDE und in der pom.xml?


----------



## kemit (14. Okt 2011)

@Maki
Ich habe mich villeicht falsche ausgedruckt ich meinte ein Java Console Anwendung.
Ich habe  nicht der Project von anfang an entwickeln musse nur weiter entwickeln deswegen immer die ganze Ergänzungen.Ich habe  gerade in der POM Datei geguckt es  scheint richtig eingestellt zu sein :[XML]<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>[/XML]

Gruss


----------



## maki (14. Okt 2011)

Was verwendet die IDE für das Projekt als Encoding?


----------



## kemit (14. Okt 2011)

auch UTF-8


----------

