2016-01-26 27 views
7

sto usando javax.mail di chiamare un server di posta elettronica e inviare un file come allegato di posta elettronica che codifica il nome del file in questo modo: MimeUtility.encodeText(filename,"UTF-8",null)wildfly 9.x fallisce codifica i nomi dei file allegati greci

Anche se questo ha lavorato bene su WildFly 8, non riesce su WildFly 9.x con il server stessomail. Quello che voglio dire è che la descrizione allegato viene ricevuto in questo formato: =UTF-8BzrTOv866zrnOvM63IM68zrUgzrXOu867zrfOvc65zrrOsS5wZGY==

ho cercato di:

1) Trova una regolazione relativa sul server applicazioni - senza fortuna.

2) Codifica con ISO-8859-7 che funziona solo occasionalmente poiché sembra dipendere dalla lunghezza del nome file e dalla presenza di alcuni caratteri.

3) Trovare un'impostazione relativa sul client (microsoft outlook) che suppongo manchi di alcune informazioni da decodificare correttamente.

Qualche idea?

Grazie in anticipo !!

+0

Ciao. Sei riuscito a risolvere questo problema? Sto affrontando lo stesso identico problema. Grazie. – GGrec

+0

@GGrec La domanda originale dice "fallisce su WildFly 9". Cosa significa questo? Per me non è completamente chiaro cosa e ** dove ** va storto. Potrebbe anche essere utile sapere quali impostazioni sono utilizzate per la proprietà di sistema 'file.encoding' e la codifica servlet. –

+0

Hai provato questo - http://stackoverflow.com/a/31674972/5934435? – Sampada

risposta

0

Per testare il problema, ho creato un progetto dimostrativo here. Invia un messaggio con simboli non ascii in varie parti, ma non usa encodeText, poiché viene gestito automaticamente dall'API Mail. L'ho provato con Wildfly 8, 9, 10 per inviare messaggi a http://mailtrap.io.

La prima schermata mostra il messaggio inviato da wildfly 8. L'allegato non viene inviato correttamente, quindi è assente:

Attachment is not properly sent in Wildfly 8

Il secondo schermo è a messaggi inviati da wildfly 9 (lo stesso per 10). Come potete vedere, c'è un allegato con un nome di file corretto:

For Wildfly 9 and 10 all right!

Così che cosa potrebbe essere il problema qui?

  • wildfly 8 navi con Java posta API 1.5.1
  • wildfly 9 navi con Java posta API 1.5.3
  • wildfly 10 navi con Java posta API 1.5.5

penso si verifica un errore in Java Mail versione 1.5.1.

Molto probabilmente, si è lavorato attorno a quel bug quando è stato codificato contro Wildfly 8 (usando manualmente encodeText), ora questa soluzione potrebbe causare problemi.

+0

Ho rimosso la soluzione alternativa. Stiamo usando WF 10. Apparentemente, su alcune macchine funziona bene, mentre su altre sostituisce il carattere speciale con un punto interrogativo, o anche l'intero nome del file con "noname". Può esserci un'impostazione dipendente dalla macchina? – GGrec

+0

@GGrec probabilmente, dovresti specificare la codifica predefinita per java: 'bin/standalone.sh -Dfile.encoding = UTF-8' – Tair

+0

@GGrec Mi dispiace, il commento sopra è sbagliato :(, invece dovresti modificare' bin/standalone.conf': 'JAVA_OPTS =" .... -Dfile.encoding = UTF-8 "' – Tair