Buscar en el Blog

martes, 9 de febrero de 2010

Uso de las librerías de Apache Commons para enviar emails

Apache Commons Proper es un proyecto de Apache enfocado en crear componentes reutilizables de Java. En el siguiente ejemplo se usó las librerías de Commons Email para enviar emails. Estas librerías simplifican el envio de correos electrónicos usando Java, permitiendo enviar:

  • SimpleEmail. Emails con texto básico.
  • MultiPartEmail. Emails con archivos adjuntos.
  • HtmlEmail. Emails formateados con HTML.
 En el siguiente código se envía un email usando las librerías de Apache Commons Email. Además, se usa la clase StringBuilder y Formatter para enviar al email texto formateado. A continuación el código fuente:
public static void main(String[] args) {
    try{
        SimpleEmail mail = new SimpleEmail();
        StringBuilder sb = new StringBuilder();
        //Formateador para enviar el contenido formateado
        Formatter formatter = new Formatter(sb);
        //Contenido que se va a enviar
        formatter.format("%s\n\n","Reporte");
        formatter.format("%-20s%-20s%-20s\n", "--------------------",         "--------------------", "--------------------");
        formatter.format("%-20s%-20s%-20s\n", "Código", "Nombre", "Apellido");
        formatter.format("%-20s%-20s%-20s\n", "--------------------",         "--------------------", "--------------------");
        formatter.format("%-20s%-20s%-20s\n", "0000011", "Mauricio", "Murillo");
        formatter.format("%-20s%-20s%-20s\n", "0000012", "Juan", "Pérez");
        //Servidor de correo electrónico
        mail.setHostName("x.y.z.w");
        //Destinatario
        mail.addTo("x@ycom");
        //Mail de origen
        mail.setFrom("w@z.com");
        //Título
        mail.setSubject("Email formateado usando Apache Commons Email");
        //Se agrega el mensaje de texto al email
        mail.setMsg(sb.toString());
        //Se envía el email
        mail.send();

    } catch(EmailException e){
    }
}

El resultado es el siguiente:

Reporte de Personas
------------------------------------------------------------
Código              Nombre              Apellido            
------------------------------------------------------------
0000011             Mauricio            Murillo             
0000012             Juan                Pérez               

2 comentarios:

  1. Hola. Sabes cómo hacer el enví utilizando el servidor de correo de Gmail?

    He intentado así:

    email.setHostName("smtp.gmail.com");
    email.setSmtpPort( 465 );

    pero jamás ocurre nada, a excepción de que el programa se queda corriendo sin ocurrir nada.

    Gracias.

    Hasta pronto.

    ResponderEliminar