Acento no envio de email[RESOLVIDO]

Pessoal, estou com um problema aqui que não estou conseguindo resolver… é o seguinte:

Tenho uma aplicação que envia emails com aniversáriantes do dia para toda a empresa. Ele busca esses dados no banco de dados e envia o nome e os dados do aniversáriante para todos. Acontece que, quando ele traz um nome com acento, ele não mostra o caracter. Alguém tem uma idéia de como eu poso forçar esse acento em uma palavra trazido do banco de dados?? Quer dizer, o email é montado na hora do envio, por isso estou meio perdido aqui…

Voçe pode remover os acentos e enviar sem eles

Veja um exemplo de como fazer isso
http://www.javac.com.br/jc/posts/list/75.page#226

Os acentos não aparecem no email, ou no java mesmo antes de ser enviado já some os acentos ?

Ele perde os acentos na hora do envio.

qual biblioteca de envio você está utilizando?

javax.mail

Onde você seta a mensagem a ser enviada, tente algo ± asisim:

//mensagem contendo os Acentos....
String mensagem = "áááááóóóãããoõõõõõõ";
//

Message message = new MimeMessage(mailSession);

// este segundo parametro passado, contendo o charset da mensagem
message.setContent(mensagem, "text/html; charset=iso-8859-1");

creio ser isso.

Cara, uma vez fiz isso e utilizo até hoje.
Pode ser que tenha outras maneiras

ai vai

    private static String aacute = "á";     // 	á
    private static String acirc = "â";       // 	â
    private static String agrave = "à";     // 	à
    private static String atilde = "ã";      //	ã
    private static String ccedil = "ç";      // 	ç
    private static String eacute = "é";      // 	é
    private static String ecirc = "ê";       //	ê
    private static String iacute = "í";      //	í
    private static String oacute = "ó";      //	ó
    private static String ocirc = "ô";        //	ô
    private static String otilde = "õ";      //	õ
    private static String uacute = "ú";      //	ú
    private static String uuml = "ü";          //  ü

    private static String Aacute = "Á";      //  Á
    private static String Acirc = "Â";        //	Â
    private static String Agrave = "À";      //	À
    private static String Atilde = "Ã";      //	Ã
    private static String Ccedil = "Ç";      //	Ç
    private static String Eacute = "É";      // 	É
    private static String Ecirc = "Ê";        //	Ê
    private static String Iacute = "Í";      //	Í
    private static String Oacute = "Ó";      // 	Ó
    private static String Ocirc = "Ô";        // 	Ô
    private static String Otilde = "Õ";      // 	Õ
    private static String Uacute = "Ú";      // 	Ú
    private static String Uuml = "Ü";          //	Ü

    public static String adjustments( String text )
    {
     String t = new String( text );

      t = t.replace( "á", aacute );
      t = t.replace( "â", acirc );
      t = t.replace( "à", agrave );
      t = t.replace( "ã", atilde );
      t = t.replace( "ç", ccedil );
      t = t.replace( "é", eacute );
      t = t.replace( "ê", ecirc );
      t = t.replace( "í", iacute );
      t = t.replace( "ó", oacute );
      t = t.replace( "ô", ocirc );
      t = t.replace( "õ", otilde );
      t = t.replace( "ú", uacute );
      t = t.replace( "ü", uuml );

      t = t.replace( "Á", Aacute );
      t = t.replace( "Â", Acirc );
      t = t.replace( "À", Agrave );
      t = t.replace( "Ã", Atilde );
      t = t.replace( "Ç", Ccedil );
      t = t.replace( "É", Eacute );
      t = t.replace( "Ê", Ecirc );
      t = t.replace( "Í", Iacute );
      t = t.replace( "Ó", Oacute );
      t = t.replace( "Ô", Ocirc );
      t = t.replace( "Õ", Otilde );
      t = t.replace( "Ú", Uacute );
      t = t.replace( "Ü", Uuml );
      t = t.replace( "\n", "<br>" );
      return t;
    }

o text é o texto do email. Como o email é html, devemos usar caracteres especiais substituindo pelo padrão da linguagem.

Abraço

Aaa.

E se quiserem um método ninja de remoção de acentos de qualquer string, ai vai

    public String removerAcentos( String acentuada )
    {
        CharSequence cs = new StringBuilder( acentuada );
        return Normalizer.normalize( cs, Normalizer.Form.NFKD ).replaceAll( "\\p{InCombiningDiacriticalMarks}+", "" );
    }

Obs.: Método adquirido aqui no fórum alguns anos atrás.

[quote=cawink]Cara, uma vez fiz isso e utilizo até hoje.
Pode ser que tenha outras maneiras

ai vai
o text é o texto do email. Como o email é html, devemos usar caracteres especiais substituindo pelo padrão da linguagem.

Abraço
[/quote]

Sendo sincero, não intendi… você substituí um caracter por ele mesmo ? não faz sentido…

Ops, falha nossa.

Ta dando problemas devido aos caracteres especiais em html.

Coloquei num arquivo a solução

não seria mais Util, envez de percorrer uma mensagem varias vezes, você apenas trocar o charset do corpo do email ?

Minha opinião, mais simples e rapido.

tb.

tem o charset=iso-8859-1

Mas se quiser trabalhar com UTF-8, dai vai ter que ser na mão mesmo

Cara, funcionou perfeitamente! Valeuz!!

[quote=Lucas Sorrentino][quote]
Onde você seta a mensagem a ser enviada, tente algo ± asisim:

    //mensagem contendo os Acentos....  
    String mensagem = "áááááóóóãããoõõõõõõ";  
    //  
      
    Message message = new MimeMessage(mailSession);  
      
    // este segundo parametro passado, contendo o charset da mensagem  
    message.setContent(mensagem, "text/html; charset=iso-8859-1");  

creio ser isso.
[/quote]

Cara, funcionou perfeitamente! Valeuz!![/quote]

Show, era só corrigir o charset…

abçs

Galera, vou aproveitar a Thred aqui… to com um detalhezinho… o assunto do email, ue agora possui acento, está vindo todo zoado… nada do que eu faço resolve… eu já setei a string como UTF-8, como ISO, mas não consigo enviar um email com acento no assunto… alguém tem alguma idéia??

Posta teu codigo que realiza o envio ai…

Email.enviar(to, from,	answer,subject, this.content, "text/plain; charset=iso-8859-1");

ele é assim pq eu tenho uma classe já preparada pra fazer o envio… e os parametros pro envio são aqueles ali… estou tendo problema no subject do email…

Então, o problema pode estar no meu metodo enviar na sua Classe Email.

pois nop codigo q vc enviou não possuí nada demais…