Enviando email com JavaMail utilizando Gmail

Configure o JavaMail para utilizar a conta pessoal do GMail. Uma excelente alternativa para quem não possui uma conta POP3 de servidor próprio.

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:

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:

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 ;)

Artigos relacionados