Bom dia, estou passando por um problema ao enviar um e-mail pelo java os acentos ficam com esse carácter: � isso somente pelo servidor do www.integrator.com.br, quando envio da minha maquina local funciona corretamente. ligue para eles e mesmo informaram que minha linguagem está diferente da UTF-8 a qual está configurada no servidor deles.
Alguém sabe como posso resolver esse caso?
segue abaixo a classe que utilizo para enviar e-mail:
public void Enviar(final ServidorEmail mail)
throws UnsupportedEncodingException, MessagingException {
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mail.getSmtp());
props.setProperty("mail.smtp.auth", mail.getSmtpAuth());
props.setProperty("mail.smtp.starttls.enable", mail.getSmtpStarttls());
props.setProperty("mail.smtp.port", mail.getPorta());
props.setProperty("mail.mime.charset", mail.getCharsetMail());
// classe anonima que realiza a autenticação
// do usuario no servidor de email.
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mail.getUsuario(),
mail.getSenha());
}
};
// Cria a sessao passando as propriedades e a autenticação
Session session = Session.getDefaultInstance(props, auth);
// Gera um log no console referente ao processo de envio
session.setDebug(true);
// cria a mensagem setando o remetente e seus destinatários
Message msg = new MimeMessage(session);
// aqui seta o remetente
msg.setFrom(new InternetAddress(mail.getEmailRemetente(), mail
.getNomeRemetente()));
boolean first = true;
for (Map.Entry<String, String> map : mail.getDestinatarios().entrySet()) {
if (first) {
// setamos o 1° destinatario
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(
map.getKey(), map.getValue()));
first = false;
} else {
// setamos os demais destinatarios
msg.addRecipient(Message.RecipientType.CC, new InternetAddress(
map.getKey(), map.getValue()));
}
}
// Adiciona um Assunto a Mensagem
msg.setSubject(mail.getAssunto());
// Cria o objeto que recebe o texto do corpo do email
MimeBodyPart textPart = new MimeBodyPart();
textPart.setContent(mail.getCorpo(), mail.getTypeTextMail());
// Monta a mensagem SMTP inserindo o conteudo, texto e anexos
Multipart mps = new MimeMultipart();
for (int index = 0; index < mail.getAnexos().size(); index++) {
// Cria um novo objeto para cada arquivo, e anexa o arquivo
MimeBodyPart attachFilePart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(mail.getAnexos().get(index));
attachFilePart.setDataHandler(new DataHandler(fds));
attachFilePart.setFileName(fds.getName());
// adiciona os anexos da mensagem
mps.addBodyPart(attachFilePart, index);
}
// adiciona o corpo texto da mensagem
mps.addBodyPart(textPart);
// adiciona a mensagem o conteúdo texto e anexo
msg.setContent(mps);
// Envia a Mensagem
Transport.send(msg);
}
}