Subscribe:

Labels

martes, 22 de mayo de 2012

Enviar e-mail desde Java con una cuenta de Hotmail

buen día...!!


Muchas veces a nuestras aplicaciones necesitamos agregarle más funcionalidad (bueno, ello depende de las necesidades que los usuarios tengan) y lo que les presento ahora trata de ello; nuestra aplicación enviará correos electrónicos ya sea a uno o varios contactos.
Para ello como ya es habitual vamos a listar las herramientas que necesitamos:

JavaMail.jar: Que nos brindará las bondades de la API JavaMail.
Netbeans 7.0.1, indistintamente de cualquier otro IDE.


Empezaremos mencionando que el protocolo que usaremos el SMTP (Simple Mail Transfer Protocol) Protocolo Simple de Transferencia de Correo Electrónico.

Ahora en primer lugar la estructura de carpetas que manejaremos en el desarrollo de nuestro proyecto:
Como observamos el proyecto cuenta con dos paquetes: enviarmensajehotmail que contendrá a la clase EnviarMensajeHotmail.java, la encargada de enviar el mensaje; unsch.efpis.Mensaje que contendrá a Mensaje.java, que será la encargada de gestionar el envío del mensaje.
También observamos que hemos agregado nuestro mail.jar (que por cierto la encontrarán comprimida en el JavaMail.jar).

Sin más rodeos veamos la clase Mensaje.java: Que se encargará de lo siguiente:

  1. Establecer las propiedades para el protocolo que vamos a usar; el SMTP (líneas 26 al 28).
  2. Crear sesión de correo (línea 32).
  3. Construir un mensaje vacío (línea 36).
  4. Rellenamos los campos necesarios del mensaje construido (asunto, emisor, receptor, etc) (líneas 39 al 53).
  5. Enviamos el mensaje con los campos rellenados (línea 55 al 59).
Ahora veamos nuestra clase EnviarMensajeHotmail.java: Que enviará los e-mail y mostrará un mensaje si la operación se realizó con éxito.
Al ejecutarla debería mostrarnos en la consola algo como lo siguiente :
y en las bandejas de entrada de los e-mail's que pusimos como receptores debería haber llegado el mensaje enviado; algo como lo siguiente,
Para el caso, en mi bandeja de Hotmail:
 En mi bandeja de Gmail:
Bueno, eso fue todo por hoy; espero sus dudas y/o comentarios sobre el tema. Muchas gracias, hasta luego!!

Ahhhhhhh y por favor si el material te fue útil ayúdame recomendando por las redes sociales; dando "Me gusta" en Javaenaccion en Facebook o "+1" en Google+, etc etc. en :D.

5 comentarios:

dario dijo...

oye a mi solo me manda este error:

530 5.7.0 Must issue a STARTTLS command first

Roger Soto dijo...

Hola, gracias por escribir...
Te muestra el error 530, y eso se da porque posiblemente pueden darse estos tres casos:

1. Es necesaria la autenticación de tu cuenta.
2. Tu servidor ha sido rechazado por servidor del destinatario.
3. El buzón del destinatario no existe.

Lo más probable es la primera, imagino que estás tratando de enviar con TU CUENTA real verdad?

Lo menciono porque puedes quizá estar confundiendo la cuenta y contraseña que yo puse como referencia.

Bueno espero eso solucione el error que te muestra y sino; por favor sigue escribiendo para buscar otras alternativas. Nos vemos!!

Unknown dijo...

oye amigo no tendras uno en archivo adjunto desde java? o como lo implemento gracias

Roger Soto dijo...

Hola que tal, disculpa por la demora en responder... mira para ese tipo de casos no tengo el material preparado pero, si de algo te sirve ello es correos electrónicos multiparte. Nos vemos Saludos!!

XxdantexX dijo...

me marca el error:
com.sun.mail.smtp.SMTPSendFailedException:5305.7.0 Must issue a STARTTLS command firt

Todo en Infolinks