Habilitación de aplicaciones J2EE para utilizar los recursos de correo con JavaMail

Puede habilitar las aplicaciones Java™ EE (Java Platform, Enterprise Edition) para que utilicen recursos de correo con la API de JavaMail.

Antes de empezar

Con la API de JavaMail, se puede incorporar un segmento de código en cualquier componente de aplicación de Java EE, como una aplicación o un servlet EJB (Enterprise JavaBeans), que permite a la aplicación enviar mensajes y guardar una copia del correo a la carpeta Sent (Enviados).
A continuación figura un ejemplo de código que incorporaría en una aplicación Java EE:
javax.naming.InitialContext ctx = new javax.naming.InitialContext();

   javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3");
   MimeMessage msg = new MimeMessage(mail_session);

   msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("bob@coldmail.net"));

   msg.setFrom(new InternetAddress("alice@mail.eedge.com"));

   msg.setSubject("Important message from eEdge.com");

   msg.setText(msg_text);

   Transport.send(msg);

 
   Store store = mail_session.getStore();

   store.connect();

   Folder f = store.getFolder("Sent");

   if (!f.exists()) f.create(Folder.HOLDS_MESSAGES);

   f.appendMessages(new Message[] {msg});

 

Acerca de esta tarea

Las aplicaciones Java EE pueden utilizar las API de JavaMail consultando referencias a fábricas de conexiones de correo nombradas lógicamente mediante el subcontexto java:comp/env/mail que se declara en el descriptor de despliegue de aplicaciones y correlacionado con recursos de sesión de correo específicos de la instalación. Como en el caso de otros recursos Java EE, esto se puede efectuar para eliminar la necesidad de la aplicación de codificar referencias a recursos externos.

Procedimiento

  1. Localice un recurso mediante JNDI (Java Naming and Directory Interface). La especificación de Java EE considera una instancia de sesión de correo como un recurso o una fábrica de la que se puede obtener el transporte de correo y conexiones de almacén. No proteja mediante código las sesiones de correo (concretamente, rellene un objeto Properties y, a continuación, utilícelo para crear un objeto javax.mail.Session). En su lugar, debe seguir el modelo de programación de Java EE que consiste en configurar recursos mediante los recursos del sistema y luego localizarlos mediante búsquedas JNDI.

    En el código de ejemplo anterior, la línea javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3"); es un ejemplo de una sesión de correo sin codificar que utiliza un nombre de recurso localizado mediante JNDI. Puede considerar el nombre de búsqueda, mail/MailSession3, como una referencia indirecta al recurso real.

  2. Defina referencias de recursos cuando ensamble la aplicación. Debe definir en el descriptor de despliegue del componente una referencia a recursos para el recurso de correo, dado que se hace referencia a la sesión de correo en la búsqueda JNDI. Normalmente, puede utilizar una herramienta de ensamblaje que se entrega con el servidor de aplicaciones.
    Cuando cree esta referencia, asegúrese de que el nombre de la referencia coincida con el nombre utilizado en el código. Por ejemplo, el código anterior utiliza java:comp/env/mail/MailSession3 en su búsqueda. Por lo tanto, el nombre de esta referencia debe ser mail/Session3 y el tipo del recurso debe ser javax.mail.Session. Después de la configuración, el descriptor de despliegue contiene la entrada siguiente para la referencia al recurso de correo:
    <resource-reference> 
       <description>description</description>  
       <res-ref-name>mail/MailSession3</res-ref-name>
       <res-type>javax.mail.Session</res-type>  
       <res-auth>Container</res-auth>
    </resource-reference>
  3. Configure sesiones y proveedores de correo. En el código de ejemplo se hace referencia a un recurso de correo, el descriptor de despliegue declara la referencia, pero el propio recurso aún no existe. Ahora tendrá que configurar el recurso de correo al que hace referencia el componente de aplicación. Observe que la sesión de correo que configura debe tener definidas las partes de transporte y de acceso de correo; la primera es necesaria porque el código envía un mensaje, la última porque también guarda una copia al almacén de correo local. Cuando configura la sesión de correo, tiene que especificar un nombre JNDI. Es un nombre importante para instalar la aplicación y enlazar las referencias de recursos en la aplicación con los recursos reales que configure.
  4. Instale la aplicación. Puede instalar la aplicación con la consola administrativa o la herramienta de scripts. Durante la instalación, el servidor de aplicaciones inspecciona todas las referencias de recursos y exige que proporcione un nombre JNDI para cada uno de ellos. No es un nombre JNDI arbitrario, sino el nombre JNDI asignado a un recurso configurado concreto que es el destino de la referencia.
  5. Gestione sesiones y proveedores de correo existentes. Puede actualizar y eliminar sesiones y proveedores de correo.

    Para actualizar proveedores y sesiones de correo:

    1. Abra la consola de administración.
    2. Pulse Recursos > Correo en el árbol de navegación de la consola.
    3. Seleccione el recurso de correo Java adecuado que se ha de modificar pulsando Proveedor de correo o Sesión de correo .
    4. Seleccione el recurso específico que se ha de modificar. Para suprimir un proveedor de correo o una sesión de correo, seleccione el recuadro de selección que hay junto al recurso adecuado y pulse Eliminar.
    5. Pulse Aplicar o Aceptar.
    6. Guarde la configuración.
  6. Opcional: Depure una sesión de correo.

Qué hacer a continuación

Si la aplicación dispone de un cliente puede actualizar sesiones y proveedores de correo con la herramienta ACRCT (Application Client Resource Configuration Tool).

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmai_jovr
File name: tmai_jovr.html