Archive for setembro, 2009

Enviar email com Java

setembro 28th, 2009

Email

O poder do Java é muito grande, você poderia desenvolver um webmail em Java. Existem até exemplos na internet de como se fazer isso, não é o objetivo deste post, mas sim dar uma introdução básica de como Enviar Email com Java.

Importante: Antes de sair copiando o código, colando no seu projeto e testando, preste atenção nessas poucas observações, entenda primeiro e faça depois, garanto que você terminará mais rápido do que se tivesse apenas usado a técnica do: CTRL+C CTRL+V.

Primeiro de tudo: você precisará da API JavaMail que poderá ser baixada aqui: JavaMail

Endereço SMTP: mude para o domínio do seu email (exemplo: smtp.gmail.com), caso necessário pergunte ao administrador do servidor de email o endereço smtp:

props.put("mail.smtp.host", "mail.seudominio.com.br");

Tipo da mensagem email: nesse caso foi definido como html:

mensagem.setContent(msg, "text/html;charset=ISO-8859-1");

Debug: importante para verificar erros e ver se ocorreu tudo certo:

session.setDebug(true);

Múltiplos endereços: o Javamail permite o envio para mais de um destinatário ao mesmo tempo, mas, como aqui a ideia é enviar para apenas um, ficou assim:

Address to[] = new InternetAddress[1];
to[0] = new InternetAddress(para);

Código completo:

» Read more: Enviar email com Java

Não sabe? Pergunta pro pai!

setembro 19th, 2009

Não sabe? pergunta pro pai!Não sabe? pergunta pro pai! http://pt-br.lmgtfy.com/?q=linux

Muitas vezes as pessoas querem aprender sobre algum assunto ou sanar alguma dúvida, e por falta de conhecimento (ou preguiça mesmo), nem se dão o trabalho de pesquisar um pouco (só um pouco) e já saem pelos fóruns a fora a criar posts, que estão cheios de perguntas igualzinhas (muitas das vezes até no título). Se tivessem dado uma pesquisada rápida no “Pai” teriam encontrado o que procuravam, sem ter que incomodar ninguém e garanto que se sentiriam melhor por isso. Acaba se tornando muito mais cômodo perguntar para alguém ou para algum fórum e esperar que seja respondido do que ir realmente atrás e procurar o que se precisa.

Devemos nos acostumar e pregar a cultura do faça você mesmo, pesquise, se inteire do assunto e aprenda de verdade.

Não estou falando que não devemos ajudar os outros, não é isso, alias eu adoro(adoro mesmo) ajudar, porem, as vezes o melhor não é dar o peixe a quem tem fome, mas sim ensina-lo à pescar.
O trabalho dos fóruns também é super importante, eu mesmo dou meus pitacos as vezes no Guj, Vivaolinux, PortalJava e por ai vai, só não participo mais porque existem pessoas mais capacitadas do que eu por esse lugares.

Esses dias descobri até este jeitinho aqui: http://pt-br.lmgtfy.com/?q=java para resolver o problema dessas pessoas(e das nossas também). Esse link muito bacana que está acima quem me passou foi o @fabianocne. Quando alguém lhe perguntar algo mostre esse jeito bacana de se encontrar as coisas de que precisamos saber mais um pouco.

Deixo aqui a minha opinião, o que vocês acham?
E não se esqueçam: Não sabe? Pergunta pro pai!

Download de arquivo com Java

setembro 1st, 2009

Se você gostaria que quando o usuário clicasse num link ao invés de ser exibido uma imagem (ou qualquer outro arquivo) fosse apresentado para ele a telinha de download você está no lugar certo.

Para que isso ocorra você terá que forçar para que o navegador mostre a tela de download, se for apenas redirecionado para o caminho do arquivo e este for uma imagem por exemplo o navegador irá tentar exibir a imagem.
Primeiro você vai precisar obter o objeto HttpServletResponse (neste caso foi usado para JSF)

HttpServletResponse response = (HttpServletResponse)
FacesContext.getCurrentInstance().getExternalContext().getResponse();

Após esse passo deve ser setado o nome do aquivo para download

response.setHeader("Content-Disposition",
"attachment;filename=\"" + nomeDoArquivo + "\"");

E agora a “mágica”, o que vai forçar o navegador mostrar a tela de download, mesmo que ele seja capaz e exibir o tal arquivo

response.setContentType("application/download");

Você ainda poderá definir outras informações como o charset, ou o tamanho do aquivo

response.setCharacterEncoding("ISO-8859-1");
response.setContentLength(arquivo.length);

Pra terminar pegue a saída padrão, escreva o arquivo e finalize

OutputStream out;
out = response.getOutputStream();
out.write(arquivo);
out.flush();
out.close();
FacesContext.getCurrentInstance().responseComplete();

Segue o código completo:
» Read more: Download de arquivo com Java

UA-6094148-3