Enviando correos desde Java

Hola CubaCoders:

En estos días probando cosas encontré una biblioteca de Java llamada javamail que se utiliza para el trabajo con servidores de correos ya sea smtp, imap o pop3, o sea que como tal vamos a poder crear nuestro propio cliente de correos así que en el tutorial de hoy les voy a mostrar cómo utilizar esta biblioteca en una sencilla aplicación Java para enviar un correo.

Lo primero que haremos será crear una interfaz más o menos como esta:

Como ven es una interfaz muy básica con 3 campos fundamentales en los cuales vamos a poner la dirección de la persona a la que le queremos enviar el correo, el asunto y el texto del correo, se habrán fijado también que debajo del botón enviar hay un label que nos va a servir para saber que el correo ha sido enviado, bueno una vez terminada la parte del diseño vamos a la parte más importante que es el código de la aplicación.

Había comentado al inicio que para realizar estas operaciones con servidores de correos necesitaremos de una biblioteca llamada javamail la cual les dejo aquí para que descarguen ya que nuestro siguiente paso será incluir la misma en nuestro proyecto.

 

Una vez realizado los pasos anteriores vamos a crear una clase que llamaremos Mail y dentro de esta un método llamado Enviar() y el mismo va a recibir por parámetros 3 strings que no son más que los 3 campos que tiene la interfaz y el código quedaría algo como esto:

public String Enviar(String para,String asunto,String texto)

   {

       Properties props = new Properties();

       props.put(“mail.smtp.host”, “servidor_smtp”);

       props.put(“mail.smtp.port”, “25”);

       props.put(“mail.smtp.auth”, “true”);

       props.put(“mail.smtp.starttls.enable”, “false”);


       Session session = Session.getInstance(props,

               new javax.mail.Authenticator() {

                   protected PasswordAuthentication getPasswordAuthentication() {

                       return new PasswordAuthentication(“usuario”, “contraseña”);

                   }

               });

       try {

           Message message = new MimeMessage(session);

           message.setFrom(new InternetAddress(para));   //la direccion de donde sale

           message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(para));

           message.setSubject(asunto);

           message.setText(texto);

           Transport.send(message);

           return “Enviado”;

       } catch (MessagingException e) {

           throw new RuntimeException(e);

       }

   }

Vamos a comentar esto un poco, aunque no es difícil de entender, primero creamos una variable de tipo Properties a la cual le agregamos todas las propiedades necesarias para la conexión con nuestro servidor de salida o smtp como son: el nombre del servidor de salida, el puerto que utiliza (casi siempre 25), si requiere autenticación o no y deshabilitamos el starttls, luego utilizando la clase Session ponemos el usuario y la contraseña de nuestra cuenta de correo, haciendo uso de la clase MimeMessage creamos el correo con todos los datos que pasamos por parámetros al método Enviar(), enviamos el correo haciendo uso de la clase Transport y retornamos un string como que el correo se ha enviado para notificarle al usuario.

Ya con esto tenemos creado nuestro método que envía correos, ahora solo faltaría llamarlo cuando se dé clic en el botón enviar de la interfaz y quedaría así:

Mail mail = new Mail();         jLabel3.setText(mail.Enviar(jTextField1.getText(),jTextField2.getText(),jTextArea1.getText()));

Ahora solo nos queda probarlo y ver que tal funciona así que déjame un comentario diciéndome como te fue probando esta pequeña aplicación que hemos hecho y si se te ocurren algunas ideas más para agregarle, un saludo y hasta el próximo tuto.

Share
Soy Ingeniero en Ciencias Informáticas, me encanta programar sobre todo en C# y Android

4 thoughts on “Enviando correos desde Java

    1. me gustaria poder hacerlo pero debes saber que cualquier IDE pesa demasiado como para poder colgarlo en este blog y menos con la velocidad de conexion y capacidad de los servidores, de todas maneras quizas alguien que vea tu comentario te pueda ayudar con eso

    2. Te recomiendo que estés al tanto de los eventos para informáticos que se realizan en nuestro país, y si eres usuario del Software Libre te gustará el FLISOL. En estos encuentros siempre tendrás oportunidad de compartir y encontrar herramientas que te permitan seguir desarrollándote en este mundo. Este año ya se realizó este evento en específico, pero puedes estar al tanto en tu provincia si se hará alguna que otra actividad en algún tiempo cercano. Y no detengas tu búsqueda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *