Datos Generales

Tipo de Bandeja

Casilla de correo electrónico

Nombre Calificado

com.latintech.thuban.docintro.tray.ModernAuthO365MailTray

Extiende de

MailTray

Descripción

Bandeja de trabajo que permite recuperar los documentos de una casilla de correo de Microsoft 365 mediante autenticación moderna.

Solo IMAP

Requiere de Java 7 en adelante. Recomendado Java 8.

Disponible desde Versión

7.5.3.2

Parámetros soportados

A continuación se listarán todos los parámetros aceptados por la bandeja. Los títulos que anteceden cada tabla son los nombres de los parámetros, los mismos son caseSensitive.

name

Tipo

String

Requerido

Descripción

Es el nombre que se le otorga a esta instancia particular de la bandeja que se está definiendo en el XML de DocIntro. Es utilizado para referencia la bandeja en el TrayManager.

inputMailFolder

Tipo

String

Requerido

Descripción

Nombre de la carpeta remota de la casilla de correo electrónico desde la cuál se tomarán los correos a procesar. Ej: INBOX

errorFolder

Tipo

Carpeta

Requerido

Sí. Además la misma debe existir.

Descripción

Carpeta dónde se alojarán los logs y archivos que durante el procesamiento arrojen error.

host

Tipo

String

Requerido

Descripción

URL / IP del servidor de correo electrónico. outlook.office365.com

protocol

Tipo

String

Requerido

No. Valor por defecto “IMAP

Descripción

Protocolo de conexión a la casilla de correo electrónico. Valores posibles: imap | imaps

port

Tipo

Integer

Requerido

No. De no especificar utiliza el puerto por defecto para el protocolo utilizado. Ej: IMAP → 143

Descripción

Puerto de conexión al servidor de correos electrónicos.

username

Tipo

String

Requerido

Descripción

Nombre usuario necesario para conectarse a la casilla de correo electrónico.

password

Tipo

String

Requerido

Descripción

Clave de acceso a la casilla de correo electrónico correspondiente al parámetro “username

clientId

Tipo

String

Requerido

Descripción

ID de aplicación registrada en Azure AD. Ver: Microsoft 365 - Registro de Aplicación

clientSecret

Tipo

String

Requerido

Descripción

Secret asociado a la aplicación en Azure AD que le otorga permisos para obtener Access Tokens. Ver: Configuración Descarga de Mails Autenticación Moderna

isExternalized

Tipo

Boolean

Requerido

No. Valor por defecto “false

Descripción

Con esta propiedad se indica si el parámetro “username”, “password”, “clientId” y “clientSecret” están externalizados. Esto significa que en el xml del docintro se ponen variables en vez de los datos reales. Al momento de ejecutar la bandeja con esto activo irá a buscar estos parámetros al archivo security.properties

advanceSessionProps

Tipo

Map

Requerido

No

Descripción

Permite pasar parámetros especiales para la creación de la sesión de conexión al correo electrónico. Por ejemplo, para ssl :

<property name="advanceSessionProps">
	<map>	
		<entry key="mail.imap.socketFactory.class" value="javax.net.ssl.SSLSocketFactory"/>
	</map>
</property>	

deleteErrorMail

Tipo

Boolean

Requerido

No. Valor por defecto “false

Descripción

Indica si la bandeja debe eliminar el correo electrónico de la casilla en caso de error.

className

Tipo

String

Requerido

No

Descripción

Indica el ID de la clase documental de destino de los archivos a ser procesados. No es necesario definirla aquí, puede ser definida posteriormente en un procesador.

internalName

Tipo

String

Requerido

No

Descripción

Permite sobreescribir la configuración de la clase documental indicando aquí de que forma se debe conformar el nombre del documento en Thuban.

Puede ser definido posteriormente en un procesador de subida de documentos.

En caso de no informar nada en ningún lado del DocIntro, al momento de subirse el documento a Thuban se generará el nombre como está definido en la clase documental.

count

Tipo

Integer

Requerido

Descripción

Indica cuántos correos electrónicos serán procesados por la bandeja en cada ejecución del DocIntro.

note

Este no es estrictamente un parámetro obligatorio en el sentido de que la aplicación no arrojará un error de no estar definido.

Sin embargo, decidimos ponerlo como tal ya que el valor que toma por defecto es “0”, entonces el efecto será que no se procesará ningún correo electrónico y eso podría causar confusión sobre el funcionamiento de nuestro DocIntro.

Este no es estrictamente un parámetro obligatorio en el sentido de que la aplicación no arrojará un error de no estar definido.

Sin embargo, decidimos ponerlo como tal ya que el valor que toma por defecto es “0”, entonces el efecto será que no se procesará ningún correo electrónico y eso podría causar confusión sobre el funcionamiento de nuestro DocIntro.

fields

Tipo

Map

Requerido

No

Descripción

Mapa de campos que se quiere agregar el ítem de trabajo de la bandeja.

Ejemplo

<property name="fields">
	<map>
		<entry>
			<key><value>F_INGRESO</value></key>
			<value>$F{'yyyy-MM-dd'}</value>
		</entry>				
	</map>				
</property>

maskTool

Tipo

ThubanMaskTool

Requerido

No

Descripción

Esta es una propiedad que referencia otro Bean de utilidades del docintro que permite reemplazar valores de campos o asignar valores a campos en función de Máscaras. Por ejemplo, si se define una campo:

$F{'yyyy-MM-dd'}

Esa máscara será reemplazada por la fecha del momento con ese formato por el maskTool.

Particularidades de funcionamiento

  1. Esta bandeja no utiliza la carpeta outputFolder, aunque se pueda indicar la ignora. Esta bandeja no exporta documentos a ninguna carpeta por sí sola, necesita de un procesador que se encargue de ello. Por ejemplo: MailExportProcessor, éste será quién deposite en una carpeta los correos electrónicos y adjuntos en una carpeta.

  2. Existe solo un MarshallingManager que se puede utilizar con este tipo de bandeja, el MailMarshallingManager

  3. Los correos electrónicos que hayan sido procesados correctamente, son eliminados de la casilla de correo automáticamente. Esto lo hace siempre, con lo cuál se aconseja generar un backup previo en la casilla, por ejemplo mediante reglas de correo.

Ejemplos de Configuración

Básica

<bean id="emailTray" class="com.latintech.thuban.docintro.tray.ModernAuthO365MailTray">
    <property name="host" value="outlook.office365.com"/>
    <property name="protocol" value="IMAP"/>
    <property name="port" value="993"/>
    <property name="clientId" value="Tu Client ID"/>
    <property name="clientSecret" value="Tu Client Secret"/>
    <property name="username" value="tucasilla@tudominio.com"/>
    <property name="password" value="tuclabe"/>
    <property name="inputMailFolder" value="INBOX"/>
    <property name="errorFolder" value="C:\Docintro\error"/>
    <property name="className" value=""/>
    <property name="internalName" value=""/>
    <property name="count" value="5"/>
    <property name="maskTool" ref="maskTool"/>
    <property name="marshallingManager" ref="mailMarshallingManager"/>
    <property name="name" value="emailTray"/>
</bean>

Credenciales externalizadas

<bean id="emailTray" class="com.latintech.thuban.docintro.tray.MailTray">
	<property name="host" value="outlook.office365.com"/>
	<property name="isExternalized" value="true"/>
	<property name="clientId" value="miservidor.clientID"/>
    <property name="clientSecret" value="miservidor.clientSecret"/>
	<property name="username" value="miservidor.username"/>
	<property name="password" value="miservidor.password"/>	
	<property name="inputMailFolder" value="INBOX"/>
	<property name="errorFolder" value="C:\Docintro\error"/> 
	<property name="className" value=""/> 
	<property name="internalName" value=""/>
	<property name="count" value="5"/>
	<property name="maskTool" ref="maskTool"/>
	<property name="marshallingManager" ref="mailMarshallingManager"/>
	<property name="name" value="emailTray"/>
</bean>