Necesitamos JSF y JavaMail
El árbol de proyecto es el siguiente:
- Creamos un nuevo proyecto (java) con el nombre correo.
- En la carpeta "SourcePackages" agregamos un nuevo archivo de propiedades, llamado datos.
- Agregamos las claves fundamentales para JavaMail (líneas 4-8) y otras claves que utilizaremos (líneas 10-12)
NOTA: el correo debe ser uno existente de gmail
y la contraseña (línea 12) real del correo especificado
- Ahora creamos el paquete util, y dentro del mismo la clase EnviarMail que tendrá toda la lógica para el envío de correo utilizando JavaMail.
Debemos contar con el jar de JavaMail (mail.jar) para importar algunas clases a utilizar
Definimos un método que recibirá tres parámetros
Encerrando las sentencias en el bloque try-catch, iniciamos leyendo el archivo de propiedades y creando una composición de Session asignando un objecto de sesión predeterminado (getDefaultInstance) con las propiedades (claves) y valores del archivo de propiedades llamado datos.
Para crear el mensaje, será a través de una instancia de objeto MimeMessage y luego le establecemos los atributos y contenidos apropiados setFrom, setSubject, setText, addRecipient, etc.
De la imagen siguiente, línea 42 se establece el remitente del correo: setFrom
Línea 44, se establece el asunto del mensaje (correo): setSubject
Línea 45, se establece el mensaje como tal especificando la codificación a utilizar y el subtipo MIME
prop.getProperty("clave") recupera el valor de la clave indicada en el archivo de propiedades llamado datos
De la imagen anterior, en la línea 43 se declara el destinatario del correo (éste debe existir y puede ser de gmail. hotmail, yahoo, etc.), se puede incluir con copia a otro destinatario y con copia oculta
Línea 50, nos autenticamos con el usuario (correo) y contraseña válidos en el host especificado (en este caso smtp.gmail.com: clave mail.smtp.host del archivo de propiedades)
Una vez autenticados, mandamos el mensaje sendMessage
Casí para finalizar, cerramos el servicio: t.close();
Línea 55 cerramos try y añadimos dos catch específicos: si hay error en el envío del mensaje y si hay algún problema en la entrada/sálida de datos al cargar el archivo de propiedades.
Ahora utilizaremos este método desde una "Java Main Class"
Descargar ejemplo
Antes de probar el proyecto de ejemplo, debe establecer su correo y contraseña de gmail en el archivo de propiedades (en las claves mail.smtp.user y utez.gmail.pass).
Queda como creatividad que el método enviar retorne un "booleano" para informar si se envío o no el correo, validar que las direcciones de correo cumplan con el formato de correo, y agrear una interfaz gráfica con swing o web por ejemplo.
No hay comentarios.:
Publicar un comentario