Como carregar paginas HTML para enviar no JAVA Mail?

7 respostas
B

Olá a todos, estou realizando um projeto web onde uma das funções é o famoso “esqueceu sua senha” em que é enviado para o email do usuario sua senha.
Estou usando o JAVA Mail e está funcionando tudo certinho, o problema é que o e-mail enviado está muito simples e bem “bruto” apenas informando a senha do usuário.

Queria dar uma incrementada nesse email enviando alguma imagem por exemplo, ou até mesmo enviar uma pagina html toda customizada (além é claro da senha pedida). Alguém tem alguma maneira de se fazer isso?

Eu imagino (não testei ainda) que se eu simplesmente escrever as tags html no corpo da mensagem deve enviar do jeito que eu quero, mas não me parece um jeito muito certo de se resolver o problema, pelo que ja pesquisei existe um jeito de vc simplesmente carregar uma pagina html ja feita no projeto ao enviar o email, mas não descobri como fazer ainda

qualquer dica será muito bem vinda!
agradeço desde já!

7 Respostas

J

Fácil:

Message msg = new MimeMessage();
Multipart mult = new MimeMultipart();
BodyPart imgPart = new MimeBodyPart();
File imgFile = new File("myImage.jpg");
FileDataSource imgSrc = new FileDataSource(imgFile);
imgPart.setDataHandler(new DataHandler(imgSrc));
imgPart.setHeader("Content-ID", "myImage");
String html = "<img >";
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(html, "text/html");
mult.addBodyPart(imgPart);
mult.addBodyPart(htmlPart);
msg.setContent(mult);

Ta bom, não tão fácil, mas também não é difícil… heheheh

J

Ali onde tem String html, não ta saindo direito, mas é pra ser assim

img src="cid:myImage"
F

Eu gosto de usar o apache email

http://commons.apache.org/email/

Aqui tem um exemplo de como mandar em html

http://commons.apache.org/email/userguide.html

Só lembrando que ele é uma api para facilitar o uso do java mail, assim continua sendo necessário ter o java mail na aplicação.

B

Juno, duas perguntas:
esse código que vc postou eu deveria colocar no método que eu ja tenho? uqe envia o email ??

e esa linha a mais que vc pôs depois eu tiro aquela da String e coloco a nova ??

Fausto, darei uma olhada nessa API também

muito obrigado aos dois

J

Aquela String chamada html, eh o codigo html que vc quer enviar no email.
No caso, eu so inclui a tag img para demonstrar como enviar uma imagem no corpo
do email. Para incluir a imagem, na propriedade ‘src’ da img, vc coloca ‘cid:myImage’
(onde myImage eh o nome que vc deu aa imagem). Depois vc envia aquele objeto Message
com o Multipart setado como conteudo.

B

Aqui fica dando erro dizendo que não conseguiu encontrar o caminho especificado da imagem.
o que vc importou quando colocaou o File ??

J

copia o stack trace do erro e cola aí pra gente ver…

Criado 6 de setembro de 2011
Ultima resposta 6 de set. de 2011
Respostas 7
Participantes 3