Olá.
Estou desenvolvendo uma aplicação web onde preciso enviar alguns emails. Minha classe de envio de email é a seguinte:
public class EnviaEmail
{
private String host = "smtp.mail.yahoo.com.br";
public class SMTPAuthenticator extends Authenticator
{
@Override
public PasswordAuthentication getPasswordAuthentication()
{
String username = "xxxxxyyyyy@yahoo.com.br";
String password = "xxxxxxx";
return new PasswordAuthentication(username, password);
}
}
public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception
{
String from = "xxxxxxxyyyyyy@yahoo.com.br";
String fileAttachment = "";
Properties mailProps = System.getProperties();
mailProps.put("mail.smtp.host", this.host);
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(mailProps, auth);
mailProps.put("mail.smtp.auth", "true");
mailProps.put("mail.debug", "true");
mailProps.put("mail.smtp.debug", "true");
mailProps.put("mail.mime.charset", "ISO-8859-1");
mailProps.put("mail.smtp.port", "587");
MailcapCommandMap mc = (MailcapCommandMap) CommandMap
.getDefaultCommandMap();
mc
.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc
.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc
.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc
.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc
.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);
// Definir mensagem
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(para));
message.setSubject(assunto);
// Criar parte da mensagem
MimeBodyPart messageBodyPart = new MimeBodyPart();
// Texto da mensagem
messageBodyPart.setText(mensagem);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Enviar parte da mensagem
message.setContent(multipart);
message.setContent(mensagem.toString(), "text/html");
// Enviar toda a mensagemSend the message
Transport.send(message);
}
}
Meu problema não é bem na no envio da mensagem, eu acho, e sim na codificação da mensagem.
Minha pergunta pode até ser bem boba mas é que nunca fiz este tipo de coisa antes.
Estou gerando minha mensagem da seguinte forma:
String mensagem = null;
mensagem += "Bem vindo(a) "+usuario.getNome()+"\n\n";
mensagem += "Sua conta foi criada com sucesso com os seguintes dados:\n";
mensagem += "Login: "+usuario.getLogin()+"\n";
mensagem += "Senha: "+usuario.getSenha()+"\n";
mensagem += "Código de ativação: "+usuario.getCodigoAtivacao()+"\n\n";
mensagem += "Utilize o código acima para a ativação de sua conta.";
Mas a mensagem que recebo no meu email é a seguinte:
[color=blue]Bem vindo(a) Marcelo Sua conta foi criada com sucesso com os seguintes dados: Login: mfbottoni Senha: z9m7pq36 Código de ativação: tn168ft0rs Utilize o código acima para a ativação de sua conta.[/color]
Exatamente desse jeito. Mas gostaria que ela fosse assim:
[color=blue]Bem vindo(a) Marcelo
Sua conta foi criada com sucesso com os seguintes dados:
Login: mfbottoni
Senha: z9m7pq36
Código de ativação: tn168ft0rs
Utilize o código acima para a ativação de sua conta.[/color]
Alguém sabe me dizer o que devo fazer?
Muito obrigado.
Abraço, Bottoni