Email com JavaMail utilizando Gmail

E aeeeeeee galera! Depois deste período que passei em exílio estudando sobre a origem e o sentido da vida, voltei com todas as respostas e com mais conhecimento para passar à vocês ("Agora o bixo pega").

Vamos começar com uma solução para você que está fazendo uma aplicação de envio de email, mas não possui um serviço smtp habilitado para o mesmo(Servidores normalmente pagos).

E agora? será que não conseguirei testar minha aplicação sem ter que pagar? Resposta: Sim conseguirá.

Há uma forma de você utilizar sua conta google usar este serviço de grátis. Então. Lets go!

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.


Antes de começar, você vai precisar das seguintes biblotecas:
  • mail.jar
  • activation.jar
Você encontra as bibliotecas contidas em um único arquivo, no seguinte endereço:
Usando a sua IDE favorita (Eclipse ou NetBeans), crie uma biblioteca chamada JavaMailutilizando 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(“”);
Pronto! É só compilar!
Email enviado com sucesso!!!

OBS: Se você utiliza algum Firewall, verifique se ele está bloqueando as portas SMTP para envio de sua mensagem.

Veja também:

Comentários

Postagens mais visitadas deste blog

E Esse Tal de Nano Service?

Executar Audio em Java Swing

Validando Email em Java Com e Sem expressão Regular