Usando Java para enviar e-mails



body { margin:20px; padding:0; } h1 { border-bottom:1px solid black; } form { margin-top:3em; font-size:85%; } fieldset { background:#ffc; margin:0 0 1em 0; border:1px solid #ddd; width:40em; } textarea { font-size:90%; } table#markuphint { float:right; background:#ffa; border:1px solid #ccc; font-size:90%; } table#markuphint tr { line-height:100%; } table#markuphint td { padding:0 7px; } pre#output { margin-left:3em; overflow:auto; } #parsed { border:1px solid #999; margin:0 2em 2em 3em; padding:1em; } #parsed td { border-style:solid; } #footer { border-top:1px solid black; }

Colaboração: Carlos Tosin (instrutor oficial dos Cursos On-Line de Java da Softblue)

Você está desenvolvendo uma aplicação e percebe que o envio de e-mails é necessário. Então você pensa: "será que consigo fazer isso de uma maneira fácil e rápida?". A resposta para essa questão é "sim, você consegue". O Java tem uma API que serve justamente pra isso, a chamada JavaMail API. Ela realmente funciona, mas num primeiro momento não parece muito intuitiva pra quem deseja sair mandando e-mail sem ter que estudar muito.

Por esse motivo o pessoal da Apache, dentro do projeto Commons, desenvolveu a Commons E-mail API. Esta API nada mais é do que um wrapper (ou um adapter, para os que gostam mais de adotar as nomenclaturas usadas nos design patterns) da JavaMail API. A vantagem é que ela é extremamente simples de ser usada pelo programador.

O primeiro passo é fazer o download do JAR e incorporá-lo ao seu projeto. Depois é só usar as classes disponibilizadas pela API e mandar os e-mails. As principais classes da API são as seguintes:

SimpleEmail: representa um e-mail simples que contém apenas texto. MultiPartEmail: representa um e-mail que pode conter arquivos atachados. HtmlEmail: representa um e-mail escrito em formato HTML. EmailAttachment: representa um arquivo a ser atachado no e-mail (usado apenas com as classes MultiPartEmail e HtmlEmail).

Outra característica dessa API é o suporte a envio de e-mails através de servidores de SMTP que requerem autenticação. É preciso apenas informar o nome de usuário e a senha, além do endereço do servidor SMTP.

Este é um exemplo básico de como seria o código para envio de um e-mail em texto através de um servidor de SMTP autenticado:

01 SimpleEmail email = new SimpleEmail(); 02 email.setHostName("smtp.somedomain.com"); 03 email.setFrom("[email protected]"); 04 email.setAuthentication("usr", "pwd"); 05 email.addTo("[email protected]"); 06 email.addCc("[email protected]"); 07 email.addBcc("[email protected]"); 08 email.setSubject("Meu primeiro e-mail"); 09 email.setText("Olá, estou usando o Commons E-mail API!"); 10 email.send();

Como é possível perceber, basta instanciar a classe desejada (dependendo do tipo do e-mail que você quer enviar), popular o objeto e chamar o send(). O resto fica por conta da API.

Para mais informações, visite o site oficial da API: . Lá você encontra um guia de usuário explicando mais detalhadamente o seu funcionamento.

Carlos Tosin é instrutor oficial dos Cursos On-Line de Java da Softblue, formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento de Jogos para Computador pela Universidade Positivo e Mestre em Informática na área de Sistemas Distribuídos, também pela PUC-PR. Trabalha profissionalmente com Java há 7 anos e possui 4 anos de experiência no desenvolvimento de sistemas para a IBM dos Estados Unidos, utilizados a nível mundial. Atua há mais de 2 anos com cursos e treinamentos de profissionais em grandes empresas. Possui as certificações da Sun SCJP, SCJD, SCWCD, SCBCD, SCEA, IBM SOA e ITIL Foundation.


Autor: Carlos Eduardo Gusso Tosin


Artigos Relacionados


Utilizando A Api Cglib Para Interceptar Chamadas De Métodos Em Objetos Java

Memory Leak Em Java

O Básico Do Protocolo Pop3

Serviços De Email

Black Friday 2012

Configurar Conta De E-mail No Outlook Express

Autenticação De Email