Panel de correo

Autoservicio de correo para los clientes de mi propio hosting compartido — sin cuenta de revendedor cPanel. Cada cliente entra a su propia cuenta y gestiona el correo de su dominio (casillas, redireccionadores, catch-all, autorespondedores, filtros) sin tener que pedírmelo, con registro completo de quién hizo qué.

PHP 8 + SQLite UAPI de cPanel Sin WHM/revendedor Multiusuario por dominio

Estas capturas son de una cuenta de demostración con datos ficticios ("Estudio Demo") armada especialmente para este caso de estudio — nunca se muestran dominios ni casillas de clientes reales.

Tengo hosting compartido en cPanel para mis propios sitios y para algunos clientes (cada uno con su dominio apuntado a una subcarpeta de la misma cuenta) — pero sin cuenta de revendedor/WHM, la vía "oficial" para darle a un cliente su propio acceso administrable no existe. Lo que sí está disponible en cualquier cuenta individual, sin WHM, es la UAPI de cPanel autenticada con un token de cuenta — así que esta es la capa de autoservicio que faltaba entre esa API y mis clientes.

Nació de una charla ("¿esto se puede hacer?") y se construyó módulo por módulo, verificando cada función de la API contra la cuenta real antes de confiar en ella — la documentación de terceros resultó inconsistente varias veces (nombres de función y de parámetro que no existen o no coinciden entre funciones "hermanas").

Deliberadamente afuera de la UI, aunque la API de cPanel lo permite: la opción "pipe" en redireccionadores/filtros (mandar el correo a un script — sería ejecución de comandos en un panel de autoservicio) y el toggle de SpamAssassin (es una configuración de cuenta completa, no por dominio — un cliente podría afectar a todos los demás). Tampoco se guardan contraseñas de casillas para ningún tipo de acceso automático a webmail: quedó evaluado como "peligroso y pendiente", sin implementar salvo que en algún momento decida sopesar ese riesgo explícitamente.

PHP 8 SQLite (PDO) Bootstrap 5 JavaScript vanilla UAPI de cPanel (módulo Email)
← Volver a los proyectos