Será apresentada mais uma forma de envio de email. A seguir será definido todas as etapas para envio de email com a API Commons Mail

Primeira Parte  - Download API Commons Mail

Realize o download de todos os arquivos .jar e coloque-os em uma pasta relacionada ao seu projeto.

- activation: activation.jar (http://java.sun.com/products/archive/javabeans/jaf102.html)
- commons-email-1.1: commons-email-1.1.jar (http://commons.apache.org/downloads/download_email.cgi)
- javaMail: mail.jar (http://java.sun.com/products/javamail/downloads/index.html)

Segunda Parte 2 - Adicionando no classpath

- No caso do eclipse, apenas adicionamos os jars no Path do projeto, caso quem não usar o eclipse procure uma forma de setar o classpath, pois o artigo é aplicavel a todos os tipos de ferramenta.
- Dê um clique com o botão direito e vá na opção Build Path e depois em Configute Build Path.
Vai abrir uma janela e nela vá na aba Libraries e depois selecione o botao Add External JARs
- Passe o caminho onde se encontram os jars citadops anteriormente e adicione um por um. Passando essa etapa a API Commons Mail está adicionada ao Path e pronta para uso em sua aplicação.


Terceira Parte 3 - Enviando uma mensagem


Abaixo segue um exemplo de código voltado para enviar email do gmail, mas obviamente mandaria email de outros servidores, para isso precisaríamos dos valores HostName.


import org.apache.commons.mail.EmailException;  
import org.apache.commons.mail.SimpleEmail;  

public class ExecutavelCommons {  
    
  public static void main(String[] args) {  

      SimpleEmail email = new SimpleEmail();  

      try {  
      email.setDebug(true);  
      email.setHostName("smtp.gmail.com");  
      email.setAuthentication("nome_de_usuario","senha");  
      email.setSSL(true);  
      email.addTo("destinatario_email"); //pode ser qualquer email  
      email.setFrom("email_gmail"); //será passado o email que você fará a autenticação
      email.setSubject("Enviando email");  
      email.setMsg("Teste de envio de email");  
      email.send();  

      } catch (EmailException e) {  

      System.out.println(e.getMessage());  

      }   

  }  

}


Envio de email com anexo

Para o envio de email com anexo você vai precisar passar o caminho do seu arquivo.


import java.io.File;  
import org.apache.commons.mail.EmailAttachment;  
import org.apache.commons.mail.EmailException;  
import org.apache.commons.mail.MultiPartEmail;  

public class ExecutavelCommonsFile {  

  /**
    * @param args
    */  
  public static void main(String[] args) {  

        // Create the attachment  
          
                // Caminho do arquivo a ser enviado  
        File f = new File("C:\testando.txt");   
                  
        EmailAttachment attachment = new EmailAttachment();  
        attachment.setPath(f.getPath()); // Obtem o caminho do arquivo  
        attachment.setDisposition(EmailAttachment.ATTACHMENT);  
        attachment.setDescription("Anexo");  
        attachment.setName(f.getName()); // Obtem o nome do arquivo  

        try {  
          // Create the email message  
          MultiPartEmail email = new MultiPartEmail();  
          email.setDebug(true);  
          email.setHostName("smtp.gmail.com");  
          email.setAuthentication("usuario_login","senha");  
          email.setSSL(true);  
          email.addTo("destinatario_email"); //pode ser qualquer email  
          email.setFrom("email_gmail"); //será passado o email que você fará a autenticação
          email.setSubject("Teste anexo");  
          email.setMsg("Teste anexo");  

          // add the attachment  
          email.attach(attachment);  

          // send the email  
          email.send();  
      } catch (EmailException e) {  
          e.printStackTrace();  
      }  
  }  

}

Então como podemos ver é mais uma API Java de fácil usabilidade e manutenção e que para quem não conhecia será mais uma opção de envio de email.