Addons estándar / Módulo de envío de mailings / Instalación y soporte
Instalación
El módulo se despliega en dos sitios: la extensión en a3ERP, como cualquier addon, y el servicio de envío en el servidor, como una tarea programada. Los dos instaladores son independientes y se pueden ejecutar en orden inverso sin problema, pero el módulo no envía nada hasta que están los dos.
Requisitos#
| Requisito | Detalle |
|---|---|
| .NET Framework 4.8 | En el puesto que abra la extensión y en el servidor que ejecute el envío |
| Usuario de SQL Server | Con lectura sobre las tablas que consulten las vistas y escritura sobre SIT_FED_MAIL_LOG |
Diccionario DSIT_FEDMAILING |
Activado en la empresa |
| Buzón de salida | Una aplicación registrada en Entra ID con permiso de envío de correo, o un usuario y contraseña de SMTP |
| Licencia | El módulo valida licencia contra el servicio de licencias de Esofitec al arrancar el envío |
No requiere usuario de ActiveX ni el enlace NAX de a3ERP.
Ficheros del módulo#
Los instaladores y los ejemplos de configuración están publicados en la carpeta del módulo en SharePoint. Se nombran con el patrón Sit.Mailer.App_<versión>.exe y Sit.Mailer.Sender_<versión>.exe. Usa siempre la última versión publicada y confirma que las dos partes son de la misma entrega.
Instalar la extensión en a3ERP#
El instalador de Sit.Mailer.App despliega en Extensiones\Sofitec\SIT_MAILER tres cosas: los binarios, el diccionario DSIT_FEDMAILING y el menú.
- Ejecuta el instalador en el equipo donde esté la instalación de a3ERP que da servicio a los puestos.
- Revisa
appsettings.jsonyappsettings.xmlantes de que nadie abra la opción de menú. El módulo lanza una excepción al abrirse si falta cualquier clave, así que es mejor descubrirlo ahora. - Activa el diccionario
DSIT_FEDMAILINGen la empresa desde a3ERP y comprueba que la tablaSIT_FED_MAIL_LOGexiste. - Importa el menú si la instalación no lo ha hecho, y comprueba que aparece Módulos Esofitec > Envío de Mailings > Generación de Mailings.
La configuración de la extensión está en dos ficheros y los dos son obligatorios: appsettings.json con la conexión y los nombres de columna, y appsettings.xml con las consultas de las vistas. Lo detalla Configuración.
Instalar el servicio de envío#
El instalador de Sit.Mailer.Sender copia los binarios a una carpeta local del servidor, por convención bajo C:\SIT\. No se registra como servicio de Windows: se ejecuta con una tarea programada.
- Ejecuta el instalador en el servidor.
- Revisa su
appsettings.json: conexión a SQL, dirección de notificaciones, transporte de correo y licencia. - Crea una tarea programada que ejecute
Sit.Mailer.Sender.execon el parámetro-autoy con la carpeta del ejecutable como directorio de inicio, repitiéndose cada pocos minutos. Cinco minutos es la periodicidad habitual y un punto de partida razonable. - Configura la tarea para que se ejecute aunque el usuario no haya iniciado sesión, con una cuenta que tenga acceso a la carpeta de plantillas y a las carpetas de adjuntos.
Rellena el directorio de inicio o no encontrará su configuración
El servicio busca su appsettings.json en el directorio de trabajo desde el que se lanza, no en la carpeta del ejecutable. Si el campo Iniciar en de la tarea programada se deja vacío, el proceso arranca, no encuentra la configuración y termina sin hacer nada. Y lo hace en silencio: el log se configura en el mismo paso que falla, así que no se escribe ni una línea, y el proceso termina sin código de error, de modo que el Task Scheduler muestra la tarea como ejecutada correctamente. Si la tarea aparece en verde, la cola no baja y el log no crece, mira aquí antes que en cualquier otro sitio.
El parámetro -auto no es opcional en la tarea programada
Sin -auto, el proceso escribe además el log por consola, que es lo que interesa cuando lo lanzas a mano para diagnosticar. En una tarea programada usa siempre -auto.
Los dos appsettings.json se llaman igual y no son el mismo
La extensión y el servicio de envío tienen cada uno su appsettings.json con claves distintas. Copiar el de uno sobre el del otro deja el módulo inoperativo con errores de configuración que parecen no venir a cuento. Los ejemplos publicados en SharePoint están separados por componente.
La cuenta que ejecuta el envío importa#
El Sender adjunta ficheros leyendo una ruta del disco: la carpeta de adjuntos que ha preparado la App —bajo el directorio temporal del usuario que generó el envío—, donde la App ya ha copiado también los documentos vinculados. Esos documentos, en cambio, los lee la App al procesar, así que sus rutas tienen que ser accesibles desde el puesto de cada usuario.
De ahí una consecuencia poco intuitiva: si la App y el Sender corren en máquinas distintas, o con cuentas que no ven las mismas rutas, los correos salen sin adjuntos aunque todo lo demás funcione. En instalaciones donde esto pasa hay que revisar que las rutas implicadas sean accesibles desde la cuenta de la tarea programada. Es el primer sitio donde mirar cuando el cuerpo del correo llega bien pero los ficheros no.
Verificación#
Con los dos componentes instalados, la prueba de humo completa es:
- Abrir la opción de menú en a3ERP, seleccionar una vista y pulsar Actualizar. Si la parrilla trae datos, la conexión a SQL y las consultas están bien.
- Comprobar que el desplegable de plantillas se rellena. Si está vacío, la ruta de plantillas es incorrecta o está inaccesible.
- Seleccionar una fila cuya dirección de correo sea interna, elegir plantilla y procesar.
- Comprobar en SQL que hay una fila nueva en
SIT_FED_MAIL_LOGconSIT_FED_SENT_TIMEaNULL. - Lanzar el Sender a mano, sin
-auto, y ver el log por consola. - Comprobar que llega el correo y que la fila ha quedado sellada con la fecha.
Actualizaciones desde la versión a medida#
Las instalaciones más antiguas del módulo se desplegaban bajo Extensiones\Sofitec\SIT_FETHUESCA y con ejecutables nombrados para ese cliente, e incluían dos diccionarios: uno con campos propios de aquel desarrollo y otro con la tabla de mailing. En la versión estándar solo interviene DSIT_FEDMAILING.
Al actualizar una instalación de ese tipo, el diccionario antiguo con los campos a medida no hay que desactivarlo ni borrarlo: no afecta al envío de mailings, pero puede que el cliente tenga otras cosas montadas encima. La configuración también cambió de formato en el camino, de un Configuracion.xml único a los appsettings actuales, así que no se puede reaprovechar el fichero antiguo: hay que trasladar los valores a mano.