Categorías: Tutoriales

Enviar Mails con Java

 

Algunas de las aplicaciones que realizamos como programadores tienen la necesidad de Enviar Correos Electronicos por muchas razones, aqui veremos como realizarlo con JavaMail. JavaMail es una expansion de Java (no viene incluida, es un paquete externo) que facilita la Gestion de Correos Electronicos desde Java, se encarga de las tareas de conexion, autentificacion, seguridad y encriptacion para facilitar la tarea de los programadores. En este Ejemplo veremos como enviar mails con java utilizando una cuenta de Gmail a la que JavaMail se conectara, veamos como hacerlo…

REQUERIMIENTOS

 

DESARROLLO
Este Ejemplo fue realizado en 2 clases, la clase Proceso que realiza la sesion con Gmail y otra llamada Ventana que se encarga de crear la interfaz Grafica, armar el mensaje y enviarlo. Recuerda que debes importar la libreria de JavaMail.

Clase Principal

public class Proceso {
    static String username,contraseña;
    static Properties p;
    static Session sesion;

    public static void main(String args[]){
        try {
            setup();
            Ventana v = new Ventana(sesion);
        } catch (Exception ex) {
            Logger.getLogger(Proceso.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static void setup() throws MessagingException {
        //datos de conexion
        username = "tuUsername@gmail.com";
        contraseña = "tuContraseña";
 //propiedades de la conexion
        p = new Properties();
        p.put("mail.smtp.auth", "true");
        p.put("mail.smtp.starttls.enable", "true");
        p.put("mail.smtp.host", "smtp.gmail.com");
        p.put("mail.smtp.port", "587");

        //creamos la sesion
        sesion = crearSesion();
    }

    private static Session crearSesion() {
        Session session = Session.getInstance(p,
          new javax.mail.Authenticator() {
            @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, contraseña);
                }
          });
        return session;
    }    
}

Clase Ventana
Para esta Clase unicamente cabe recalcar el codigo de el boton “Enviar” que obtiene la informacion de las 2 cajas de texto (Mail to:,Asunto) y del TextArea(Mensaje) y arma el mensaje para posteriormente enviarlo.

//obtenemos datos de mensaje
String para = jTextField1.getText();
String asunto = jTextField2.getText();
String texto = jTextArea1.getText();

//Construimos el Mensaje
Message mensaje = new MimeMessage(sesion);
try {
mensaje.setRecipient(Message.RecipientType.TO, new InternetAddress(para));
mensaje.setSubject(asunto);
mensaje.setText(texto);
//Enviamos el Mensaje
Transport.send(mensaje);
JOptionPane.showMessageDialog(null, "Mail Enviado Correctamente", "Enviado",JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
Logger.getLogger(Ventana.class.getName()).log(Level.SEVERE, null, ex);
}
//limpiamos cajas de texto y textarea
jTextField1.setText("");
jTextField2.setText("");
jTextArea1.setText("");

 

RESULTADO

 

Dudas o Comentarios?

Jonathan Melgoza

Soy Jonathan Melgoza, Ingeniero en Sistemas Computacionales, Programador y Blogger, autor de un blog de Tecnologia y Programacion.

Ver comentarios

  • Ayuda!!! obtengo el siguiente error al correr el programa "com.sun.mail.smtp.SMTPSendFailedException: 501 5.5.4 Invalid Email address"

  • Bune tutorial, gracias amigo, si necestio enviar una invitacion a un evento a gmail como lo haria, es decir, hay un evento para el dia xx a la hora xx, en el sitio xxxxx, y quiero enviar un correo de invitacion con ese evento de calendario, como lo haria, gracias de antemano...

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace