Bom dia galera eu pesquisei sobre mais eu não entendi como adicionar no meu codigo,esse codigo abaixo busca anexo no email mais o anexo que estao com espaço caracter especiais (ç) ele ta dando erro como retiro isso da minha string, usei o string = teste.replaceAll("~ç", “”); mais esta dando erro, podem me ajudar por favor
String teste = Caminho.getString();
// Verifica se a mensagem passada como parâmetro é um objeto Message
Object messageObj = messageVar.getObject();
if (!(messageObj instanceof javax.mail.Message)) {
return Variant.VARIANT_NULL;
}
javax.mail.Message message = (javax.mail.Message) messageObj;
String tipoDeConteudo = message.getContentType();
if (!tipoDeConteudo.contains("multipart")) {
return Variant.VARIANT_NULL; // não há anexos
}
javax.mail.Multipart conteudo = (javax.mail.Multipart) message.getContent();
int partes = conteudo.getCount();
for (int i = 0; i < partes; i++) { // iterar as partes e extrair os anexos
javax.mail.Part parte = conteudo.getBodyPart(i);
if (!parte.ATTACHMENT.equalsIgnoreCase(parte.getDisposition())) {
continue; // essa parte não é um anexo
}
String nomeDoArquivo = parte.getFileName();
teste = teste += nomeDoArquivo;
InputStream entrada = parte.getInputStream(); // esse é o anexo do email
OutputStream saida = new FileOutputStream(teste); // esse é o arquivo em disco
// copiar os bytes da entrada para a saida
byte[] bytes = new byte[8192]; // buffer de 8KB
for (int lidos = -1; (lidos = entrada.read(bytes)) != -1; saida.write(bytes, 0, lidos)) { /* for sem corpo mesmo */ }
saida.flush();
saida.close();
}
return VariantPool.get(teste);
essa variavel teste é return com os anexo, é loop onde passa por todos os email trasendo os anexo mais o anexos que estao com caracter especial como (ç ~^) esta dando erro. eu encontrei esse codigo ele da erro - error: not a statement
java.text.Normalizer;
teste = Normalizer.normalize (teste, Form.NFD );
teste = teste.replaceAll ("[^ \ p {ASCII}]", “”);
Supondo que os anexos são java.bmp, python.png e c.jpg, então o return do método será: java.bmppython.pngc.jpg
Está imprimindo isso na exceção? Então:
teste = Normalizer.normalize (teste, Form.NFD );
teste = teste.replaceAll ("[^\\p{ASCII}]", ""); // são duas barras invertidas
return VariantPool.get(teste);
// copiar os bytes da entrada para a saida
byte[] bytes = new byte[8192]; // buffer de 8KB
for (int lidos = -1; (lidos = entrada.read(bytes)) != -1; saida.write(bytes, 0, lidos)) { /* for sem corpo mesmo */ }
saida.flush();
saida.close();
teste = Normalizer.normalize (teste, Form.NFD );
teste = teste.replaceAll ("[^\\p{ASCII}]", ""); // são duas barras invertidas