====== Enviar correo electrónico desde una aplicación ====== --- //[[pedrody@um.es|PEDRO DELGADO YARZA]] 2014/02/28 14:23// Si queremos enviar correos electrónicos desde nuestra aplicación web podemos hacerlo usando las librerías que contiene Fundeweb 2.0 para ello. :!: Antes de seguir léete la normativa para [[plsql:correo&#componer_mensaje_de_correo_sin_generar_spam|Componer un mensaje de correo sin generar spam]] y también ** [[plsql:correo-de-pruebas|Servicio de Correo de Pruebas para el Entorno de Desarrollo/Test]] ** La clase encargada de realizar el envío de correos debe extender de: **org.jboss.seam.framework.Controller** para heredar parte de los métodos necesario para el envío de correos. Al mismo tiempo se tendrá que hacer uso de la clase ** javax.mail.Session** para realizar el envío de los mismos. Las variables que debemos tener en cuenta a la hora de realizar el envío del correo son: * **from**: Email de quien envía el correo electrónico. * **password**: Contraseña de acceso de quien envía el correo electrónico. * **to**: Email del destinatario del correo electrónico. * **titulo**: Título del mensaje del correo electrónico. * **textoMensaje**: Texto del cuerpo del correo electrónico. * **datos**: Bytes del fichero que se desee adjuntar. * **contentType**: Tipo de datos del fichero que ha adjuntado. * **nombreFichero**: Nombre del fichero de datos del fichero que ha adjuntado. A parte de estas variables hay que añadir a la aplicación el servidor smtp sobre el cual queremos actuar, en nuestro caso es smtp.um.es. Una vez comprendido los conceptos esenciales de lo que hace falta para enviar un correo electrónico. Debemos definir un fichero **xhtml** que será la **plantilla** del correo electrónico que mandemos. Un ejemplo de ese fichero es este: **Para Fundeweb 1.2.x**

**Para Fundeweb 2.x**

Este ejemplo contempla un fichero adjunto, a parte de los datos básicos anteriormente mencionados. Tras preparar la plantilla tendremos que lanzarla desde nuestro código Java cuando el usuario quiera mandar el email: @Name("generadorEmail") public class GeneradorEmailextends Controller{ private static final long serialVersionUID = -5322774514121017558L; @In private Session mailSession; @Logger Log log; private String password; private String from; private String texto; private String titulo; private String to; public GeneradorEmail() { } public void enviarEmail() { try { //Creamos la url del servidor smpt URLName url = new URLName("smtp://@smtp.um.es"); // Creamos la sesión de correo para la url indicada pasandoe l password del usuario mailSession.setPasswordAuthentication(url, new PasswordAuthentication(this.from, this.password)); //Invocamos al motor de seam que "pite" la plantilla lo cual causará el envío del correo. render("/paginas/plantillaEmail.xhtml"); } catch (Exception ex) { log.error("error", ex); } } ... ... } ===== Referencias ===== * [[https://www.adictosaltrabajo.com/2010/07/23/jboss-seam-email-service/|Envío de correo electrónico con el soporte de JBoss Seam]] * [[http://docs.jboss.org/seam/2.3.1.Final/reference/html/mail.html|JBoss Seam 2.3 - Reference Guide - Chapter 22. Email]]