O JavaMail é uma excelente API que fornece uma estrutura independente de plataforma e de protocolo, para enviar, receber e manipular correio eletrônico (não necessariamente internet e-mail) e messaging como clientes.

Esta foi uma solução para um problema que passei, na qual, não havia uma conta de email de servidor pago POP3/SMTP. Procurando por várias soluções e alternativas na Internet, encontrei esta! A mais fácil, simples e prática. Veja a seguir:

Configurando o Projeto para envio de e-mail

Antes de começar, você vai precisar das seguintes biblotecas:

  • mail.jar
  • activation.jar

Você encontra as bibliotecas contidas em um único arquivo, no JavaMail Documentation

Usando a sua IDE favorita (Eclipse ou NetBeans), crie uma biblioteca chamada JavaMail utilizando os arquivos mail.jar e activation.jar contidos no arquivo compactado. Depois, configure o seu projeto para utilizar a biblioteca JavaMail.

Criando a classe de Envio

Crie a classe JavaMailApp e utilize o código abaixo para enviar email:


import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class JavaMailApp
{
  public static void main(String[] args) {
    Properties props = new Properties();
    /** Parâmetros de conexão com servidor Gmail */
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.socketFactory.port", "465");
    props.put("mail.smtp.socketFactory.class", 
    "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "465");

    Session session = Session.getDefaultInstance(props,
      new javax.mail.Authenticator() {
           protected PasswordAuthentication getPasswordAuthentication() 
           {
                 return new PasswordAuthentication("seuemail@gmail.com", 
                 "suasenha123");
           }
      });

    /** Ativa Debug para sessão */
    session.setDebug(true);

    try {

      Message message = new MimeMessage(session);
      message.setFrom(new InternetAddress("seuemail@gmail.com")); 
      //Remetente

      Address[] toUser = InternetAddress //Destinatário(s)
                 .parse("seuamigo@gmail.com, seucolega@hotmail.com, 
                 seuparente@yahoo.com.br");  

      message.setRecipients(Message.RecipientType.TO, toUser);
      message.setSubject("Enviando email com JavaMail");//Assunto
      message.setText("Enviei este email utilizando JavaMail com 
      minha conta GMail!");
      /**Método para enviar a mensagem criada*/
      Transport.send(message);

      System.out.println("Feito!!!");

     } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
  }
}

Altere os seguintes campos:

  • “seuemail@gmail.com” para a sua conta do Gmail;
  • “suasenha123” utilizando a senha da sua conta.

E adicione o endereço do destinatário no método .parse


Address[] toUser = InternetAddress.parse(“”);

Links Úteis

  • E aí? Como você testa seus códigos?: O programador está sempre escrevendo testes. Neste DevCast falamos um pouco sobre uma das metodologias mais utilizadas e fundamentais, o teste unitário.
  • O que é Neo4j?: Neste curso você conhecerá o Neo4j, um banco de dados NoSQL que implementa o modelo de grafos, uma estrutura de dados composta por nós (vértices) que estão ligados por meio de relacionamentos (arestas).
  • ASP.NET MVC e Entity Framework: criando uma aplicação 1:N: Neste curso você aprenderá a implementar um CRUD em ASP.NET MVC com relacionamento 1:N (um para muitos). Veremos como desenvolver as telas do CRUD com seleção do registro relacionado em um dropdown, bem como fazer da forma mestre-detalhe, com adição de campos dinâmicos.

Saiba mais sobre Java ;)

  • Guia Completo de Web Services RESTful em Java: Devido a sua simplicidade, os Web Services RESTful têm se tornado cada vez mais populares. Neste guia você encontrará os conteúdos que precisa para dominar esse modelo que permite a construção de serviços menores a APIs completas.
  • Guia Completo de Java: Neste Guia de Referência você encontrará todo o conteúdo que precisa para começar a programar com a linguagem Java, a sua caixa de ferramentas base para criar aplicações com Java.
  • Carreira Programador Java: Aprender Java não é uma tarefa simples, mas seguindo a ordem proposta nesse Guia, você evitará muitas confusões e perdas de tempo no seu aprendizado. Vem aprender java de verdade, vem!

Saiba mais sobre Referências ;)