2016-03-31 5 views
0

In meiner Java-Anwendung enthalten, möchte ich eine E-Mail mit dem MimeMessageHelper senden: NameIn outloouk erhielten Dateinamen falsche Zeichen

Meine Datei ist: âTestFileüa.PNG

mein Code ist hier:

SimpleMailMessage mail= new SimpleMailMessage(templateMessage); 
mail.setTo(personMail); 
mail.setSubject(subject); 
mail.setText(content); 
MimeMessage message = mailSender.createMimeMessage(); 
try { 
      MimeMessageHelper messageHelper = new MimeMessageHelper(message,true); 
      messageHelper.setFrom(mail.getFrom()); 
      messageHelper.setTo(mail.getTo()); 
      messageHelper.setSubject(mail.getSubject()); 
      messageHelper.setText(mail.getText());  
      messageHelper.addAttachment(fileName, new ByteArrayResource(attchmentFile)); 
    } catch (MessagingException e) { 
      e.printStackTrace(); 
    } 

Die Datei wird correcttly geschickt, aber in Outlook werden die Sonderzeichen meiner Datei nicht korrekt angezeigt.

enter image description here


Antwort

0

vor dieser Zeile,

messageHelper.addAttachment(fileName, new ByteArrayResource(attchmentFile)); 

ich hinzugefügt:

fileName = MimeUtility.encodeText(filename); 

und diese Arbeit perfekt!

0

Es sieht aus wie es ein Problem mit der Codierung des Dateinamens ist. Ich würde versuchen, eine entsprechende Zeichencodierung beim Erstellen des Pantomime-Helfer-Objekts zu setzen. Zum Beispiel:

MimeMessageHelper messageHelper = 
     new MimeMessageHelper(message, true, "UTF-8"); 
+0

Ich habe das versucht, aber ich bekomme den gleichen Fehler! – junior

+0

Nun, ich schlage vor, dass Sie 1) überprüfen, dass der Dateiname nicht gemangelt wurde, bevor Sie diesen Code erhalten, und 2) untersuchen Sie die mime-codierte Nachricht mit "od" oder das Windows-Äquivalent, um zu sehen, ob das Problem dort oder in Outlook selbst ist . –

Verwandte Themen