La Virgen

La Virgen
Primavera en la Virgen

sábado, 5 de marzo de 2011

Enviar correos con JAVA

Buenos días:
Hoy voy a explicar cómo enviar correos desde java. Para ello he utilizado el entorno de desarrollo Netbeans y el paquete “mail.jar” (se puede encontrar fácilmente por internet).
Para enviar un correo vamos a crearnos una clase llamada Cartero. Esta clase únicamente va a tener un método llamado enviarMensaje. Obviamente al tener una sola clase y no ser ésta un constructor es de suponer que será estática. Esto nos permitirá utilizarla sin necesidad de crear un objeto de la clase cartero. Esta función va a tener los parámetros: destinatario, asunto ymensaje. Veamos cómo queda:

public static boolean enviarMensaje(String destinatario, String asunto, String mensaje) {
Dentro de la función lo primero que tenemos que hacer es establecer una serie de propiedades. Las propiedades se agrupan en pares nombre-valor. Por ejemplo: color-rojo, forma-rectángulo, etc. Para crear un objeto de tipo propiedades utilizamos la clase Properties. Veamos cómo quedan las propiedades que necesitamos y las vamos explicando:
//Creamos las propiedadesProperties props = new Properties();//Servidor de envio smtpprops.setProperty(“mail.smtp.host”, “smtp.gmail.com”);//Autentificación tlsprops.setProperty(“mail.smtp.starttls.enable”, “true”);//Puerto de comunicaciones con el servidorprops.setProperty(“mail.smtp.port”,“587″);//Usuario de la cuenta de correoprops.setProperty(“mail.smtp.user”, “<usuario_correo>@gmail.com”);//Es necesaria la autenticaciónprops.setProperty(“mail.smtp.auth”, “true”);//Contraseña de la cuenta del correoprops.setProperty(“mail.smtp.password”, “<contrasenya>”);
Una vez tenemos todas las propiedades creadas, tenemos que crear un objeto de sesión que se encargará de guardar todas estas propiedades para luego ser utilizadas en el envío del mensaje. Esto se hace de esta manera:
Session sesion = Session.getInstance(props);sesion.setDebug(true); //True o false dependiendo si queremos o no ver lo que pasa
Ya tenemos todo preparado. Ahora nos toca escribir el mensaje que queremos enviar. Para ello utilizaremos una clase llamada MimeMessage. Crearemos un objeto de esta clase con la sesión creada anteriormente. Una vez hecho esto tenemos que introducir quién envía el mensaje, a quién se va a enviar, el asunto y el cuerpo del mensaje. Veamos el código que nos hace esto:
MimeMessage mensaje = new MimeMessage(sesion);mensaje.setFrom(new InternetAddress(“<usuario_correo>@gmail.com”));mensaje.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));mensaje.setSubject(asunto);mensaje.setText(cuerpo);
Por último nos resta realizar el envio. Para ello debemos usar la clase Transport. Creamos un objeto de esta clase y realizamos el envío de todos los datos configurados anteriormente. Veamos cómo se hace esto:
try{Transport mta = sesion.getTransport(“smtp”);mta.connect(“smtp.gmail.com”,“<usuario_correo>@gmail.com”,“<contrasenya>”);try{mta.sendMessage(mensaje,mensaje.getAllRecipients());}catch(SendFailedException ex){return false;}mta.close();}catch(Exception ex){System.out.println(“Cartero: Error al enviar “+ex.toString());}}catch(Exception ex){return false;}
Con esto hemos acabado. Si todos los datos introducidos son correctos, el mensaje se enviará y le aparecerá al destinatario en su bandeja de correo.

Salu2 a todos.

No hay comentarios:

Publicar un comentario