Artigo Java Magazine 29 - JavaMail Fundamental
Crie aplicações para envio e recebimento de mensagens e automatize um conjunto de tarefas importantes de aplicações web e desktop.
Clique aqui para ler esse artigo em PDF.
JavaMail Fundamental
Trabalhando com e-mails em Java
Crie aplicações para envio e recebimento de mensagens e automatize um conjunto de tarefas importantes de aplicações web e desktop
Com a API JavaMail é possível enviar, receber e manipular e-mails sem a necessidade de conhecer detalhes dos protocolos utilizados. O programador trata apenas de informações de alto nível, como o endereço de destino, o assunto e o conteúdo da mensagem, deixando para a API detalhes da transmissão e outras atividades de bastidores.
As utilidades de suporte a e-mail numa aplicação são muitas. Há desde usos simples, como notificar o administrador sobre erros críticos que exigem ação imediata (ex.: “banco de dados fora do ar.”), até necessidades de postagem de e-mails em massa, por exemplo para enviar faturas para todos os clientes de um serviço no final do mês; ou distribuir material de marketing direcionado de forma automatizada. Outra utilização comum é para enviar mensagens de uma aplicação web ao se confirmar compras ou o cadastro de usuários.
Neste artigo mostramos os fundamentos da API JavaMail e conceitos de tecnologias relacionadas.
Requisitos
A Sun oferece uma distribuição gratuita do JavaMail, com implementações dos protocolos POP3, IMAP e SMTP, que deve ser obtida separadamente (não sendo incluída com o J2SE). Será preciso também o JavaBeans Activation Framework (JAF), que é usado para tratar mensagens com anexos e para o suporte a algumas operações com mensagens não textuais.
A distribuição do JavaMail (veja links) inclui na subpasta lib um jar com as classes e interfaces independentes de protocolo (mailapi.jar) e três com implementações de cada um dos protocolos suportados (pop3.jar, imap.jar e smtp.jar). É incluso ainda um jar com o conteúdo dos quatro jars combinados – mail.jar– no diretório-raiz da distribuição. O JAF é distribuído em um único arquivo: activation.jar.
Você pode reduzir o tamanho da sua aplicação desktop incluindo apenas os jars para os protocolos utilizados. Por exemplo, se sua aplicação apenas envia e-mails simples via SMTP, incluir mailapi.jar e smtp.jar será suficiente.
No caso de aplicações servidoras que executem num container J2EE, a inclusão dos jars não é necessária, pois a API JavaMail faz parte do J2EE, sendo disponibilizada como padrão para as aplicações que rodam nessa plataforma.
Enviando mensagens simples
O envio de mensagens com JavaMail é demonstrado na Listagem 1. A primeira coisa a ser feita é criar um objeto javax.mail.Session, que representa uma conexão para envio/recebimento de mensagens entre um cliente e um servidor de e-mail. É responsabilidade dessa sessão armazenar informações, como usuário e senha, o tipo de protocolo usado e o endereço do provedor. A sessão pode ser obtida e inicializada com as propriedades desejadas usando o método estático getDefaulInstance(), como a seguir:
Session session = Session.getDefaultInstance(props);
Outro método que pode ser usado para inicialização da sessão é getInstance(). A diferença é que getDefaultInstance() cria a sessão na primeira vez em que é chamado e retorna sempre a mesma sessão nas chamadas seguintes (ou seja, haverá apenas uma sessão para toda a JVM). Já getInstance() cria uma nova sessão toda vez que é invocado.
O método getDefaultInstance() é o mais simples, sendo satisfatório para uma aplicação desktop usada por um usuário de cada vez; mas geralmente não será adequado para servidores, que podem ter que se comunicar com múltiplos serviços de e-mail simultaneamente." [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo