Pergunta

Usando o código abaixo, posso enviar um email escrito em não inglês e, embora o assunto apareça corretamente, o corpo aparece como sem sentido.
Alguma ideia?
obrigada

public void postMail(String recipient, String subject, String message, String from) throws MessagingException, UnsupportedEncodingException {

            //Set the host smtp address
            Properties props = new Properties();
            props.put("mail.smtp.host", "mail.infodim.gr");

            // create some properties and get the default Session
            Session session = Session.getDefaultInstance(props, null);

            // create a message
            Message msg = new MimeMessage(session);

            // set the from and to address
            InternetAddress addressFrom = new InternetAddress(from);
            msg.setFrom(addressFrom);

            InternetAddress addressTo=new InternetAddress(recipient);
            msg.setRecipient(Message.RecipientType.TO, addressTo);

            // Setting the Subject and Content Type
            msg.setSubject(subject);

            msg.setContent(message, "text/plain");
            Transport.send(msg);

        }

Nenhuma solução correta

Outras dicas

Tentar:

msg.setContent(message, "text/plain; charset=UTF-8");

Editar Alterado para text/plain.

Ao invés de

msg.setContent(message, "text/plain");

eu escreveria

Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(message, "text/plain; charset=ISO-8859-7");
mp.addBodyPart(mbp);

msg.setContent(mp);

Imaginei ISO-8859-7 Do seu nome, porque esse charset é para o grego, mas talvez você possa escolher mais corretamente. Ou talvez também UTF-8 funciona para o seu caso.

Se nada mais ajudar, tente alterar uma codificação de seus arquivos de origem (incluindo arquivos .java) para UTF8. No Eclipse, é feito via janela -> Preferências -> Geral -> Espaço de Workspace: Codificação de Arquivos de Texto Eu tinha CP1252 como padrão para meus arquivos de texto.

Estou recebendo meu texto dos arquivos .Properties. Mudar para UTF8 não ajudou. Isso é insano, mas alternar meus arquivos .java para UTF8 resolveu meu problema!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top