Enviar email com arquivo html externo como corpo

6 respostas
B

Boa tarde,

Estou com uma dúvida referente a enviar emails no javamail…

Faço aquele esquema básico de enviar email, colocando o corpo da mensagem com o setContent e tal…e tudo vai muito bem…
No entanto, gostaria de saber se é possível, ao invés de enviar a página html (montada no meu código java) eu poderia anexar um arquivo html externo e enviar esse arquivo como meu email…

Não quero enviar um arquivo anexo, e sim a página externa como o corpo da minha mensagem…

Alguém tem alguma idéia?

Desde já agradeço a atenção…

Abs

6 Respostas

F

E se você guardar alguns Htmls prontos em um pacote da sua aplicação, e criar um metodo de que leia esses arquivos?
Ai você introduziria isso no seu código Java como objeto.
Não sei se é exatamente isso que você quer evitar.
Porém é uma idéia.
Espero ter ajudado.

J

Amigo,

use o Apache Commons Net que é muito mais fácil que o Java Mail (mas usa este, “por baixo”).

http://commons.apache.org/net/

B

E com aquele esquema de multiparts, será que é possível?

E

Pai do Drácula, é possível fazer o que você quer sem o Commons Apache Mail, só com multipart, mas é bem chatinho, porque exige ler uma documentação (não lembro qual é a RFC, mas é a que trata de “MHTML”) e fazer vários testes.
Eu recomendo você usar o Commons Apache mesmo, porque ele já fez esse serviço sujo (e põe sujo nisso) para você.
Se quiser saber como funciona, então leia o fonte do Commons mesmo, e leia este documento:

http://www.rfc-archive.org/getrfc.php?rfc=2557

(Eu tive de ler esse documento faz uns 12 anos atrás, e não foi muito fácil fazer isso em C++).

B

Falai enantiomero…pai do Dracula é f…rsrsrsrs
Cara, consegui resolver meu problema…
Olha aí o link com a resposta:

http://www.fokasearch.com.br/wp-content/uploads/2009/07/Envie-e-Receba-E-Mails-com-JavaMail-1.pdf

Bem fácil!
Flw pessoal, vlw pela ajuda!!

M

continua usando o javamail que é simples demais e para pegar o corpo de uma pagina usa HttpClient.

String url = "http://www.qualquercoisa.com.br";
PostMethod post = new PostMethod();
HttpConnection connection = getHttpConnection();
//se conexão fechada, faz a reabertura da conexão
if(connection != null && !connection.isOpen()) {
      connection.open();
}
URI uri = new URI(url, false);
post.setURI(uri);
// pronto, aqui vc pega o html que veio na resposta da sua url.
byte[] corpoPagina = post.getResponseBody();

ai é só vc colocar no corpo do seu e-mail o conteudo da variavel corpoPagina.

abraços e boa sorte!!!

UPDATE:
não vi que vc postou falando que resolveu, bom, não vou apagar esse post pois é uma outra forma de se resolver o seu problema.
abraços!!!

Criado 11 de setembro de 2009
Ultima resposta 11 de set. de 2009
Respostas 6
Participantes 5