JavaMail: Enviar correos electrónicos desde Java

Para este post estaremos estudiando el uso de la librería JavaMail en un sencillo proyecto con una aplicación que contará con un par de ventanas desde las cuales se escribirá un mensaje y será enviado a una dirección de correo electrónico.

 

El lenguaje de programación Java es, sin duda, uno de los más completos y poderosos del mundo. Podríamos asegurar que, cualquier posibilidad que nos imaginemos es posible lograrla en Java.

Hoy traigo para ustedes la librería JavaMail (click para descargar), la cual permite enviar y recibir correos electrónicos desde Java.

Lo que haremos será crear un proyecto con una clase y dos frames, en los cuales se colocará la ventana “LogIn” donde se introducirá el correo electrónico y la contraseña del correo electrónico que se va a usar (preferiblemente, Gmail) y la ventana donde estarán los campos para el destinatario, asunto y mensaje.

Sin título-2

Sin título-3 copia
Ventana LogIn
JavaMail
Ventana que contendrá el mensaje a enviar

Ahora vamos con la programación. Primero la clase JavaMail. Aquí solo se necesita instanciar la ventana LogIn para que cuando se inicie la ejecución lo primero que suceda es que se pida el usuario y la contraseña de lo que será la cuenta que enviará el correo electrónico.

Netbeans

En la ventana LogIn, al presionar el botón Aceptar se guardará el contenido del jTextField y del jPasswordField donde está el usuario y la contraseña, respectivamente.

Sin título-4

 

El botón Cancelar hará que la ventana se cierre y se pare la ejecución.

Se ha instanciado el jFrame con el contenido del mensaje a través del objeto ventana, lo que permite llamar las variables Username y PassWord, que fueron declaradas como variables públicas y estáticas. Veamos la declaración de variables y lo que necesitamos importar desde la librería JavaMail a la clase Window.

Sin título-5

 

Vemos que solo se necesita declarar Username y PassWord como variables públicas y estáticas ya que serán las únicas cuyo valor será modificado por otras clases. Las otras variables contendrán el mensaje a enviar, el destinatario y el “asunto” del mensaje.

Ahora veamos la programación de los botones y algunas propiedades que se deben setear para que el TextArea funcione como queremos.

Sin título-6

 

Aquí es donde se empieza a utilizar la librería JavaMail. Vamos con el método SendMail. Es el que hace posible que se envíe el correo. Basta con copiar y pegar el siguiente código.

 

Aquí se muestra la imagen de cómo debería quedar:

Sin título-8

Con esto estamos listos para ejecutar la aplicación y enviar correos electrónicos.

Si desea descargar el archivo que contiene el proyecto de Netbeans utilizado para este post, lo puede descargar directamente de aquí:

Descargar Proyecto Netbeans

Por último, un video donde se muestra el programa funcionando. 

Si queda alguna duda sobre el funcionamiento de este proyecto, no duden en preguntar en los comentarios.

Saludos.

 

¿Te gustó? ¡Comparte!Share on LinkedInShare on FacebookTweet about this on TwitterEmail this to someoneShare on RedditShare on TumblrShare on Google+Pin on PinterestBuffer this page
  • Benjamin Mendiola Reynoso

    hola que tal, estoy haciendo un sistema y utilice su código para enviar correos, pero al presionar el botón enviar me marca el siguiente error:

    Exception in thread “AWT-EventQueue-0” java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;

    nested exception is:

    java.net.SocketException: Permission denied: connect

    por favor necesito terminarlo, espero su respuesta gracias.

  • Jose Vladimir Matos Marte

    Que propiedad del boton es esa que le da esa apariencia lisa? porque normalmente los botones son un poco diferentes!!!

    • Antony García González

      Depende del sistema operativo en el que se ejecuta el software

    • Muse

      Tienes que navegar entre las propiedades del button, si mal no recuerdo es border, ya que por defecto los botones se ven algo brillosos por así decirlo.

  • Pool Fernando CV

    el proyecto sale sin errores pero cuando envío el correo a una cuenta de gmail me saltan muchos errores, me dice que el puerto no es el correcto

    • Antony García González

      Debes verificar los datos del server de gmail