Enviar Mails con Java

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

Enviar Mails con Java 1

Enviar Mails con Java 2

 

Dudas o Comentarios?