Weblog de Victor Ramirez

Jueves, abril 3, 2008

Aplicación para enviar mails utilizando Netbeans 6.x

Filed under: java, netbeans, tips, web — Etiquetas: , , , , , , — vramirez @ 1:07 PM

Netbeans 6, pretende facilitar enormemente las tareas del desarrollador. En el siguiente ejemplo demostraré como crear una sencila aplicación para enviar mails desde un servidor de correo, en este caso en particular a través de una cuenta de gmail. La aplicación será generada prácticamente en su totalidad por netbeans, y solo tendremos que añadir y modificar unas partes. Crea una aplicación web, denomínala EjemploMail y le agregas el framework visual server faces. Agregale los componentes necesarios para que se vea como una página que utilizarás para componer y enviar emails. Una interfaz que tenga un input para escribir el destinatario del mail, otro para el título del mensaje (subject), y uno más para el contenido. Por su longitud, lo más lógico es agregar este último como textarea. Les debe quedar algo como esto:

Luego hacemos doble click en el boton “Enviar”. Esto nos llevará a la vista de código java de la página. Más exactamente, dentro del código a ejecutarse para el botón. En la barra lateral llama “Paleta” encontraremos varias plantillas de código. Por ejemplo código que contiene bloques try/catch, bucle for, y algunos códigos prediseñados para recorres consultas (dataproviders). Dentro de estos códigos existe uno que se llama “Send mail” ubicado en la sección Web App Functions. Haga click en el y arrástrelo hacia el método que contiene el evento del botón. La figura muestra donde esta ubicado el código plantilla, y hasta dónde debe ser arrastrado.

Luego de soltar el código plantilla de la paleta, aparecerá un cuadro de diálogo pidiendonos algunos parametros para enviar el mail. Mejor los dejamos vacios y los llenamos desde el código, donde netbeans nos ayudará a completarlo. Asi que simplemenete damos click en “OK”.

Ahora cuando vamos a echarle un vistazo al código, vemos el código plantilla que netbenas ha generado. Se trata de algo más de 60 líneas de código. Al comienzo están las variables que nos pedía el cuadro de diálogo. Cada una de ellas aparece declarada como “String” a las cuales se ha incializado con un valor vacío, excepto la variable “message”, q no aparecía en el cuadro de diálogo. Bueno, vamos a llenar los campos:

  • La variable “To” indica el destinatario, asi q a esta variable le asignamos el textfield que recibirá el destino.
  • La variable “From” indica el usuario que envia, alli escribiré mi driección de correo de gmail completa, incluyendo @gmail.com
  • La variable “subject” indica el titulo del mensaje.
  • En la variable “message” colocams el texto que venga del textarea.
  • La variable “server” la llenamos con la dirección del servidor de correo saliente que tengamos asociado. Para gmail es smpt.gmail.com En “user” coloca tu user de gmail. Es decir, el correo, pero SIN el @gmail.com y en “password”…. ya sabes.

Verifica que la variable boolean llamada “ssl” esté en true. Esta última configuración solo es propia de gmail. Si vas a enviar correo desde otro servidor debes verificar sus respectivos protocolos y puertos.

Para especificarla un puerto a la conexion con el servidor smtp puedes agregar la sgte linea de código: props.put(“mail.smtp.port”, puerto); Donde, “puerto” es una variable tipo String que contiene el número del puerto para conectarse con el servidor. Para comprobar que el mail sea enviado, agregamos un “groupMessage” a la página. Un GroupMessage es un componente sencillo que nos permite mostrar mensajes de error o información adicional. Desde la vista de diseño, arrastralo de la paleta. Se encuentra dentro de los componentes woodstock basic. Para enviarle información escribimos desde cualquier parte de la página:

info("Mensaje de confirmación");

error("Mensaje de error");

Adicional a estos 2 métodos, existe un tercero denominado log(String msj), con el cual anotamos en el log del servidor de aplicaciones en que este montada la aplicación. Coloca un mensaje de exito después de la línea de código: log(“Mail was sent successfully.”); ubicada justo antes de cerrar el try e iniciar el catch, y una linea con un mensaje de error, apenas un par de lineas abajo, justo después de la línea log(“Smtp_Send_Failed:”);

Tip: si quieres enviar texto en código html, debes modificar un atributo del objeto msg el cual es de tipo javax.mail.Message. Este objeto es el que va a contener el mensaje. Asi que justo después que se le asigne el mensaje pones la siguiente línea:

msg.setContent(message, "text/html");

El bloque de código queda más o menos asi:

msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(message);
msg.setContent(message, "text/html");

Si agregas esa línea antes de que asignes el mensaje, no funcionará correctamente. El ejemplo completo lo pueden descargar aqui

7 comentarios »

  1. Muy util la info gracias ……………. !!!!!!!

    http://www.hacking-evolutions.tk3.net encontraras foros descargas virus troyanos musica fakes 2009 zona carding zona defases software robar wifi PHARMING ATAQUE RFI Troyano indetectable a los antivirus Instalar Windows Xp y mucho pero mucho mas solo en http://www.hacking-evolutions.tk3.net El lado oscuro de la pc Hacking-Evolutions

    Comentario por Nettoxic — Jueves, mayo 15, 2008 @ 6:52 PM

  2. Hola, no consigo enviar mails. Tienes el codigo de ejemplo ??? me vendria de mucha ayuda

    gracias!

    Comentario por Carlos — Jueves, febrero 26, 2009 @ 5:35 AM

  3. Hola, carlos, esta justo al final del post.

    Comentario por vramirez — Sábado, marzo 14, 2009 @ 4:38 PM

  4. Hola, quiero saber si alguien sabe, como puedo hacer para que envie un correo a un servidor lotus o a hotmail….

    Comentario por Alicia — Miércoles, mayo 6, 2009 @ 1:28 PM

  5. Hola amigos soy nuevo en java y en la universidad me enviaron a hacer una interfas cliente servidor usando base de datos MySql q envie correos a diferentes lados ej hotmail, gmail, poner datos adjuntos, crear usuarios en el servidor,es una interfas similar como el outlook tienen alguna idea de como hacer el proyecto seria de mucha ayuda, de antemano muchas gracias.

    Comentario por ivanmendez — Martes, mayo 26, 2009 @ 12:07 AM

  6. Hola, sabes estaba desarrollando lo mismo que tu y traté de compilar tu proyecto pero me tira el siguiente error:

    Exception Handler

    Description: An unhandled exception occurred during the execution of the web application. Please review the following stack trace for more information regarding the error.

    Exception Details: java.lang.ClassNotFoundException
    com.sun.mail.smtp.SMTPTransport

    Possible Source of Error:
    Class Name: org.glassfish.web.loader.WebappClassLoader
    File Name: WebappClassLoader.java
    Method Name: loadClass
    Line Number: 1509

    Source not available. Information regarding the location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1509)….

    Y sigue para abajo.
    Quisiera saber si me estoy equivocando en algo

    Saludos!

    Comentario por vientosrojos — Viernes, junio 19, 2009 @ 5:17 AM

  7. I drop a comment whenever I like a post on a website or I have something to valuable to
    contribute to the discussion. Usually it’s a result of the sincerness communicated in the article I read. And on this post Aplicación para enviar mails utilizando Netbeans 6.x | Weblog de Victor Ramirez. I was actually excited enough to leave a thought :) I actually do have a couple of questions for you if you do not mind. Could it be simply me or do some of the responses come across as if they are left by brain dead folks? :-P And, if you are posting on additional social sites, I’d like to follow everything new you have to post.
    Would you make a list the complete urls of all
    your public pages like your twitter feed, Facebook page or linkedin profile?

    Comentario por freeteensex pics — Sábado, abril 20, 2013 @ 7:17 AM


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: