ALIANPOS V9.8.0
INSTALACIÓN — CORREO TRANSACCIONAL, RECEPCIÓN IMAP Y NEWSLETTER
Fecha: 2026-09-14

1. RESPALDO

Antes de instalar:
- respaldar la base de datos;
- respaldar la fuente actualmente publicada;
- conservar el archivo .env actual.

2. ORDEN DE INSTALACIÓN

Si instala el OVERLAY sobre V9.7.0:

A. Ejecute primero:
   database/migrations/045_correo_transaccional_recepcion_newsletter.sql

B. Después copie los archivos del overlay respetando las rutas.

C. No sobrescriba su .env con otro archivo.

La fuente completa alianposv1-7.zip ya contiene el código V9.8.0, pero la migración 045 igualmente debe ejecutarse en la base de datos.

3. CONFIGURACIÓN SMTP REQUERIDA EN .env

Ejemplo de variables. Use los datos reales de su proveedor:

MAIL_DRIVER=smtp
MAIL_FROM_ADDRESS=facturacion@su-dominio.com
MAIL_FROM_NAME="ALIANPOS"
MAIL_REPLY_TO=
MAIL_SMTP_HOST=smtp.su-proveedor.com
MAIL_SMTP_PORT=587
MAIL_SMTP_ENCRYPTION=tls
MAIL_SMTP_USERNAME=facturacion@su-dominio.com
MAIL_SMTP_PASSWORD="SU_PASSWORD"
MAIL_SMTP_TIMEOUT=15
MAIL_SMTP_VERIFY_PEER=true
MAIL_MAX_ATTACHMENT_MB=20

También confirme:

APP_URL=https://su-dominio.com
APP_LOGIN_BASE_URL=https://su-dominio.com
PUBLIC_BASE_URL=https://su-dominio.com
APP_KEY=SU_CLAVE_PRIVADA_ESTABLE

No cambie APP_KEY después de guardar contraseñas IMAP: esa clave se utiliza para cifrarlas y descifrarlas.

4. SEGURIDAD HTTPS DE LA API FISCAL

Mantenga en producción:

FE_API_SSL_VERIFY=true
HACIENDA_SSL_VERIFY=true

No desactive estas verificaciones salvo una prueba controlada y temporal.

5. RECEPCIÓN DE COMPRAS POR IMAP

Variables globales opcionales:

PURCHASE_MAIL_ENABLED=true
PURCHASE_MAIL_MAX_MESSAGES=40
PURCHASE_MAIL_MAX_ATTACHMENT_MB=10

Luego, en cada sucursal:
Admin > Configuración > Correo de compras

Configure:
- dirección del buzón;
- servidor IMAP;
- puerto;
- SSL/TLS;
- usuario;
- contraseña;
- carpeta de entrada;
- carpeta procesada, si se utiliza.

Utilice el botón de prueba antes de activar la sincronización automática.

6. EXTENSIONES PHP NECESARIAS

Confirme en el PHP que ejecuta el sitio y en el PHP CLI:

- pdo_mysql
- curl
- openssl
- imap
- mbstring
- dom/xml
- simplexml

En servidores con cPanel puede revisarlas desde la selección de versión/extensiones PHP.

7. TAREAS PROGRAMADAS

Ajuste la ruta de PHP y la carpeta del proyecto según su servidor.

Recepción de compras, cada 5 minutos:
*/5 * * * * /usr/local/bin/php /RUTA/ALIANPOS/bin/correo-compras.php >/dev/null 2>&1

Newsletter, cada 5 minutos:
*/5 * * * * /usr/local/bin/php /RUTA/ALIANPOS/bin/newsletter.php >/dev/null 2>&1

Reportes automáticos, cada 15 minutos:
*/15 * * * * /usr/local/bin/php /RUTA/ALIANPOS/bin/reportes-contables.php >/dev/null 2>&1

Los procesos incorporan exclusión mutua para evitar dobles ejecuciones sobre el mismo trabajo.

8. DNS DEL CORREO

Configure en el dominio usado por MAIL_FROM_ADDRESS:

- SPF;
- DKIM;
- DMARC.

El código no puede crear estos registros DNS. Deben configurarse en el proveedor del dominio/correo.

No use como From una dirección ajena al SMTP autenticado. ALIANPOS utiliza Reply-To cuando corresponde a una sucursal o marca.

9. PRUEBA DESPUÉS DE INSTALAR

En Admin > Configuración:
- enviar prueba SMTP;
- probar conexión al buzón IMAP.

Después pruebe:
- recuperación de contraseña;
- cambio de correo desde Mi perfil;
- FE aceptada con PDF/XML;
- NC y ND aceptadas;
- boleta de nómina PDF;
- reporte PDF/XLSX;
- newsletter de una marca con un cliente de prueba que haya aceptado recibir novedades;
- recepción de un XML real de compra por correo;
- mensaje receptor a Hacienda/motor fiscal;
- reenvío de confirmación al proveedor.

10. OBSERVABILIDAD

Revise:
- tabla mail_envios;
- campos correo_* de fe_documentos;
- campos correo_* de rrhh_nomina_detalles;
- correo_recepcion_cuentas;
- correo_recepcion_mensajes;
- newsletter_campanas;
- newsletter_destinatarios;
- proveedor_notificado_en / proveedor_notificacion_error en recepcion_documentos;
- logs PHP del servidor.

11. REVERSIÓN

Si necesita volver al código V9.7.0, restaure la fuente respaldada.
No elimine inmediatamente las tablas/columnas de la migración 045: conservarlas no impide que el código anterior opere y preserva la trazabilidad generada.
