Jordan DiazandClaude Opus 5 e4ab0567df feat(correo): SMTP desde la configuracion del panel, y fuera el proxy
Dos cambios que van juntos porque atacan el mismo fallo: en las webs de Forge no
salia ni un correo.

1. LOS CAMPOS DEL PANEL AHORA SIRVEN PARA ALGO

   La tabla `configuracion` lleva desde siempre email_smtp, email_host,
   email_port, email_secure, email_username, email_password, email_from y
   email_from_name... y no los leia NADIE. Aparecian solo en el schema: el panel
   te dejaba rellenarlos, se guardaban en la BD, y el envio seguia usando los
   defaults de la clase —con la contrasena VACIA— o lo que hubiera a mano en
   lib/variables.php. Un formulario decorativo.

   `cargarSmtpDeConfiguracion()` los vuelca sobre la clase cuando el check
   email_smtp esta marcado y email_host tiene valor. Se llama desde send() antes
   de enviar, no solo desde send_email().

   El schema de `configuracion` es PER-WEB y no todas tienen esas columnas
   (villagrancanaria no las tiene): se lee con @ sobre el array, asi que una web
   sin ellas se comporta exactamente igual que antes.

2. FUERA EL PROXY

   send_email_coco_proxy() mandaba a cocosolution.com/?sendQuantumEmail=1. Se
   quita por dos motivos medidos hoy:

     - Ese endpoint RECHAZA TODO. Probados seis formatos (JSON crudo,
       form-urlencoded, anidado, y el payload cifrado por tres vias) y siempre
       contesta {"error":1,"message":"Need SMTP data and Params"}, incluso con
       smtp_data completo. Es decir: ninguna web de Forge ha podido enviar por
       ahi, y eso es anterior a los cambios de hoy.
     - No hace falta. El container alcanza los SMTP por su cuenta: verificado
       contra smtp.gmail.com:465 y :587 y smtp.ionos.es:465, con banner 220.
       PHPMailer conecta solo cuando $smtp = true.

   Se va con el encrypt(), que solo usaba el proxy y en una linea que ya estaba
   comentada dentro de esa misma funcion. Cero llamadas a ambas fuera de la
   clase, comprobado en los cuatro arboles.

Verificado en cdn-ecommerce: con el check marcado, la traza pasa de
"smtp=no host=smtp.gmail.com pass=VACIA" a "smtp=si host=<el del panel>", y
PHPMailer intenta la conexion. Falta solo poner credenciales de verdad.

OJO, queda pendiente: send_email() devuelve NULL siempre, tanto si entrega como
si no. Un fallo de envio es hoy indistinguible de un exito.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-03 20:34:05 +00:00
2026-03-06 18:11:23 +00:00
2026-06-09 09:44:45 +00:00
2026-04-15 20:00:09 +01:00
2026-04-09 18:15:11 +01:00
2026-04-15 20:00:09 +01:00

acai-vscode-webbase

Plantilla base PHP para webs locales de desarrollo con Acai CMS.

Descripcion

Este repositorio contiene la estructura base que se usa al crear nuevas webs locales. Incluye los archivos PHP necesarios, configuracion de Apache, y la estructura de directorios del CMS.

Estructura

.
├── index.php          # Punto de entrada
├── header.php         # Encabezado
├── footer.php         # Pie de pagina
├── funciones.php      # Funciones globales
├── slug.php           # Gestion de URLs
├── sesion.php         # Gestion de sesiones
├── apartados.php      # Gestion de apartados
├── captcha.php        # Verificacion CAPTCHA
├── .htaccess          # Config Apache
├── .user.ini          # Config PHP
├── .docker/           # Config Docker (Dockerfile, etc.)
├── cms/               # Core del CMS
│   ├── lib/           # Clases, handlers, plugins
│   ├── data/          # Schemas y cache
│   └── uploads/       # Archivos subidos
├── hooks/             # Hooks PHP del proyecto
├── template/          # Plantillas y modulos
└── cgi-bin/           # Scripts CGI

Relacion con el servidor

El servidor (acai-vscode-server) referencia este directorio como WEB_BASE_DIR para copiar la estructura base al crear nuevas webs locales. Se configura en ~/.docker-web-gui/config.json como web_base_dir.

S
Description
No description provided
Readme
29 MiB
Languages
PHP 91.4%
JavaScript 5.8%
Go Template 2%
SCSS 0.7%