Cómo configurar el servicio de email de JBoss

Este wiki describe uno de los mecanismos posibles para envío de emails desde O3, que es haciendo uso del mailer de JBoss.

Existe otro mecanismo que no hace uso de esta funcionalidad, y requiere configuración por fuera de O3: la definición de servidor de correo, casilla que envía y otros parámetros necesarios. Este mecanismo no está comprendido en el alcance de este wiki. Si su instalación de O3 no admite la modificación del archivo <O3>/jboss/standalone/configuration/o3bi.xml, deberá optar por esta forma de configuración. Solicite soporte en Ideasoft.


El servicio de email de JBoss es necesario en O3 para:

  • Enviar mails de reglas (un tipo de acción posible de una regla es un email)
  • Enviar reportes por Report Cast (programación de reportes en O3 Server Administrator)

Existen distintas opciones o casos de uso:

  • Configuración para enviar vía SMTP
  • Configuración para enviar vía SMTP seguro (SSL)
  • Configuración si el servidor requiere autenticación.
  • Configuración para envío vía TLS.

Configuración para enviar vía SMTP

El servicio de mailer provisto por JBoss se configura con los siguientes archivos:

  • <O3>/jboss/standalone/configuration/o3bi.xml y 
  • <O3>/O3Server_custom.properties (Este archivo no viene con la instalación, se debe crear)

<O3>/jboss/standalone/configuration/o3bi.xml

En este archivo se definen las siguientes propiedades (o3bi.xml debe modificarse en dos lugares)

Autentificación a Servidor SMTP
Buscar 
        <subsystem xmlns="urn:jboss:domain:mail:1.0">
            <mail-session jndi-name="java:jboss/mail/Default">
                <smtp-server outbound-socket-binding-ref="mail-smtp">
            </mail-session>
        </subsystem>

Y modificar por

        <subsystem xmlns="urn:jboss:domain:mail:1.0">
            <mail-session jndi-name="java:jboss/mail/Default" from="casilla de correo que envía el mail"  >
                <smtp-server outbound-socket-binding-ref="mail-smtp">
            		<login name="usuario" password="contraseña"/>
        		</smtp-server>
            </mail-session>
        </subsystem>
Indicando Servidor SMTP
Buscar 
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
Y modificar el valor de localhost por la ip del servidor smtp


En caso que no se encuentren estas líneas 
Se busca la etiqueta
<socket-binding-group name="standard-sockets" default-interface="global" port-offset="${jboss.socket.binding.port-offset:0}">

</socket-binding-group>

Y dentro de estas se define
<outbound-socket-binding name="mail-smtp">
    <remote-destination host="ip del servidor smtp" port="25"/>
</outbound-socket-binding> 

<O3>/O3Server_custom.properties

Editar este archivo, o generarlo en caso de que no exista, y agregar las siguientes líneas de propiedades.

O3Server_custom.properties
ideasoft.mail.j2eeSession.enabled = true
ideasoft.mail.j2eeSession.jndiName=java:jboss/mail/Default 
ideasoft.mail.defaultBCCRecipient=user@gmail.com      <!--Esta propiedad no es requerida. Se debe usar si se quiere que todos los mails enviados desde O3 se envíen CC a esta cuenta de correo-->


Configuración para enviar vía SMTP Seguro

Cuando debamos utilizar un servidor de correos vía SMTP Seguro con autentificación los cambios a realizar 

<O3>/jboss/standalone/configuration/o3bi.xml

Realizar los siguientes cambios en el archivo o3bi.xml  

 

Autentificación a Servidor SMTP Seguro
Buscar 
        <subsystem xmlns="urn:jboss:domain:mail:1.0">
            <mail-session jndi-name="java:jboss/mail/Default">
                <smtp-server outbound-socket-binding-ref="mail-smtp"/>
            </mail-session>
        </subsystem>

Y modificar por

        <subsystem xmlns="urn:jboss:domain:mail:1.0">
            <mail-session jndi-name="java:jboss/mail/Default">
                <smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp">
            		<login name="usuario" password="contraseña"/>
        		</smtp-server>
            </mail-session>
        </subsystem>

 

Indicando Servidor SMTP Seguro
Buscar 
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
Modificar el valor de localhost por la ip del servidor smtp y el puerto 25 por el 465. 


En caso que no se encuentren estas líneas 
Se busca la etiqueta
<socket-binding-group name="standard-sockets" default-interface="global" port-offset="${jboss.socket.binding.port-offset:0}">

</socket-binding-group>

Y dentro de estas se define
<outbound-socket-binding name="mail-smtp">
    <remote-destination host="ip del servidor smtp" port="465"/>
</outbound-socket-binding> 

 

<O3>/O3Server_custom.properties

Editar este archivo, o generarlo en caso de que no exista, y agregar las siguientes líneas de propiedades.

ideasoft.mail.j2eeSession.enabled = true
ideasoft.mail.j2eeSession.jndiName=java:jboss/mail/Default 
mail.useSystemProp=true
ideasoft.mail.defaultBCCRecipient=user@gmail.com                         <!--Esta propiedad no es requerida. Se debe usar si se quiere que todos los mails enviados desde O3 se envíen CC a esta cuenta de correo-->

Si el servidor de correo requiere autenticación:

Se debe editar el smtp-server agregándole "login"

	<smtp-server ssl="true" outbound-socket-binding-ref="smtp-example">
			<login name="foo@example.com" password="12345"/>
	</smtp-server>

Configuración para enviar vía TLS (ssmtp)  

Cuando debamos utilizar un servidor de correos vía SSMTP TLS con autentificación los cambios a realizar 

 

<O3>/jboss/standalone/configuration/o3bi.xml

Realizar los siguientes cambios en el archivo o3bi.xml  

 

Autentificación a Servidor SMTP TLS
Buscar 
        <subsystem xmlns="urn:jboss:domain:mail:1.0">
            <mail-session jndi-name="java:jboss/mail/Default">
                <smtp-server outbound-socket-binding-ref="mail-smtp"/>
            </mail-session>
        </subsystem>

Y modificar por

        <subsystem xmlns="urn:jboss:domain:mail:1.0">
            <mail-session jndi-name="java:jboss/mail/Default">
                <smtp-server ssl="false" tls="true" outbound-socket-binding-ref="mail-smtp">
            		<login name="usuario" password="contraseña"/>
        		</smtp-server>
            </mail-session>
        </subsystem>


Indicando Servidor SMTP Seguro
Buscar 
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
Modificar el valor de localhost por la ip del servidor smtp y el puerto 25 por el 587. 


En caso que no se encuentren estas líneas 
Se busca la etiqueta
<socket-binding-group name="standard-sockets" default-interface="global" port-offset="${jboss.socket.binding.port-offset:0}">

</socket-binding-group>

Y dentro de estas se define
<outbound-socket-binding name="mail-smtp">
    <remote-destination host="ip del servidor smtp" port="587"/>
</outbound-socket-binding> 

DEBUG

  • Para aumentar la información de debug en el log del server del servicio de email en JBoss, en el archivo o3bi.xml se debe agregar en la línea 
    • <mail-session jndi-name="java:jboss/mail/Default" ..... > por <mail-session jndi-name="java:jboss/mail/Default" debug="true" .....>


Recibo de Correos Electrónicos por Cliente MS-Oultook (MS_Exchange)

Aquellos usuarios que utilicen MS-Outlook como cliente de correo electrónico van a recibir el correo electrónico con inconvenientes de visualización de la Vista Grilla. Este inconveniente es por eliminación por parte del Servidor de MS-Exchange, de algunos tags que forman la vista grilla en el cuerpo del mail.

A partir de la versión de O3BI 7.2.3 está la posibilidad de generar una imagen a partir de la Vista Grilla, para esto seguir el procedimiento indicado en el siguiente documento.

Usuarios de GMAIL

Se tiene que configurar cuenta acceso seguro  y se uso generar Contraseñas de aplicación (Caso solsire).  La clave generada se configura en el mismo lugar que la clave anterior : 

<smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp">
     <login name="o3bi.xxxx@gmail.com" password="passwdGenApp"/>
</smtp-server>



(error) Los usuarios de gmail deberán activar el acceso a aplicaciones no seguras para que GMAIL permita la conexión. Esto dejo de funcionar al 30/05/2022 (https://support.google.com/accounts/answer/6010255?hl=es&visit_id=637914218791982093-1730582951&p=less-secure-apps&rd=1#zippy=%2Cutilizar-aplicaciones-m%C3%A1s-seguras%2Cusar-contrase%C3%B1as-de-aplicaci%C3%B3n)