2015-02-11 13 views
5

Próbuję wysyłać wiadomości e-mail, które mogą zawierać znaki UTF-8 w temacie, treści wiadomości oraz w nazwie pliku załącznika.JavaMail - Nazwa pliku załącznika nie wyświetla poprawnie znaków UTF-8

Jestem w stanie wysyłać znaki UTF-8 jako część ciała podmiotu i wiadomości. Jednak, gdy wysyłam załącznik ze znakami UTF-8 jako nazwą pliku załącznika, nie jest on wyświetlany poprawnie.

Moje pytanie brzmi: jak ustawić nazwę pliku Attachment jako UTF-8?

Tutaj jest częścią mojego kodu:

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

Później edit:

Wymieniłem

pdfPart.setFileName(filename); 

z

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

i działa doskonale. Dzięki wszystkim.

+2

Czy możesz pokazać nam kod, do którego próbujesz dołączyć plik? –

Odpowiedz

0

Nagłówki MIME (takie jak Subject lub Content-Disposition) muszą być kodowane w formacie MIME, jeśli zawierają znaki spoza zestawu ASCII.

Kodowanie to "quoted printable" lub "base64". Polecam dla quoted-printable.

Zobacz tutaj: Java: Encode String in quoted-printable

0

nie wiem jak wysyłać załączniki. Jeśli przesłać przez serwer tomcat, może to spowodować wartość URIEncoding w conf/server.xml

Powiązane problemy