2015-02-11 5 views
5

Sto tentando di inviare messaggi che potrebbero contenere caratteri UTF-8 nell'oggetto, nel corpo del messaggio e nel nome del file allegato.JavaMail - Nome file allegato che non visualizza correttamente i caratteri UTF-8

Sono in grado di inviare caratteri UTF-8 come parte del Soggetto nonché corpo Mesage. Tuttavia, quando invio un allegato con caratteri UTF-8 come nome file allegato, non lo visualizza correttamente.

Quindi la mia domanda è: come posso impostare il nome del file allegato come UTF-8?

Ecco parte del mio codice:

MimeBodyPart pdfPart = new MimeBodyPart(); 
pdfPart.setDataHandler(new DataHandler(ds)); 
pdfPart.setFileName(filename); 
mimeMultipart.addBodyPart(pdfPart); 

tardi edit:

ho sostituito

pdfPart.setFileName(filename); 

con

pdfPart.setFileName(MimeUtility.encodeText(filename, "UTF-8", null)); 

ed è perfettamente funzionante. Grazie a tutti.

+2

Puoi mostrarci il codice che stai cercando di allegare al file? –

risposta

0

Le intestazioni MIME (come Subject o Content-Disposition) devono essere codificate in mime, se contengono caratteri non ascii.

La codifica è "quoted printable" o "base64". Raccomando per quoted-printable.

vedere qui: Java: Encode String in quoted-printable

0

Non so come l'invio di allegati. Se si carica tramite server tomcat, potrebbe causare il valore di URIEncoding in conf/server.xml

Problemi correlati