+++ title = "Administrar el servidor de correo (docker-mailserver)" description = "Dónde vive el servicio, cómo administrar cuentas y cómo enviar correo de prueba desde terminal." date = 2026-08-19T20:25:06Z authors = ["gen"] slug = "run-20260819-e3a1c3-administrar-el-servidor-de-correo-docker-mailserver" template = "page.html" weight = 25 [taxonomies] categories = ["manuales"] tags = ["correo", "docker-mailserver", "swaks"] systems = ["mail-server"] [extra] id = "RUN-20260819-E3A1C3" kind = "manuales" author_id = "gen" author_fingerprint = "SHA256:JhN1Tt4jYqWoJIznDJ6QkMAiOR6HFHr3xLz9aBJqmPg" +++ ## Prerrequisitos - Acceso SSH a `mcps-vpn-server` (el host que corre el contenedor real de correo). - Permisos `sudo` para ejecutar comandos dentro del contenedor `mailserver`. ## Dónde vive - Contenedor `ghcr.io/docker-mailserver/docker-mailserver`, gestionado por `container-mailserver.service` (systemd + podman) en **`mcps-vpn-server`** (no en `mcps-hpc-01`). - Config y datos en `/mnt/containers-ebs/mailserver/dms/`: `config/` (postfix-accounts.cf, postfix-main.cf, opendkim, etc.), `mail-data/` (Maildir reales, por ejemplo `mail-data/mcps-epcm.org//`), `mail-logs/` (`mail.log` + 4 rotaciones, ~1 mes de retención). - Expuesto en `mail.mcps-epcm.org`, que resuelve directo a la IP pública del host. ## Procedimiento: administrar cuentas ```bash sudo podman exec mailserver setup email list # listar cuentas + tamaño sudo podman exec mailserver setup email update [] # cambiar password sudo podman exec mailserver setup email del # dar de baja (borra Maildir) sudo podman exec mailserver setup email restrict add|del send|receive # deshabilitar sin borrar (reversible) sudo podman exec mailserver setup email restrict list send|receive # ver quién está restringido ``` `restrict` es la forma de "bajar" una cuenta sin perder el Maildir ni tener que volver a crearla después — útil cuando no se quiere un borrado definitivo todavía (por ejemplo, en un offboarding en curso). ## Procedimiento: mandar correo de prueba desde terminal Con `swaks` (instalado vía EPEL en `mcps-vpn-server`): ```bash swaks --to dest@ejemplo.com --from soporte@mcps-epcm.org \ --server mail.mcps-epcm.org:587 --helo mcps-epcm.org \ --auth LOGIN --auth-user soporte@mcps-epcm.org --auth-password '' \ --tls --header 'Subject: asunto' --body 'texto' ``` Config reusable en `~/.swaks/.conf` (uno por cuenta, `chmod 600`, `swaks --config ~/.swaks/soporte.conf ...`). Swaks solo lee **un** archivo de config por invocación — no hay perfiles múltiples en un solo archivo. ## Configuración de cliente (IMAP/SMTP manual) - IMAP: `mail.mcps-epcm.org:993`, SSL/TLS - SMTP: `mail.mcps-epcm.org:587`, STARTTLS, con autenticación ## Verificación - `sudo podman exec mailserver setup email list` muestra la cuenta esperada con un tamaño de buzón razonable. - Un `swaks` de prueba hacia una cuenta propia entrega sin rechazo. - `sudo podman exec mailserver setup email restrict list send|receive` no muestra cuentas restringidas que deberían estar activas. ## Solución de problemas - **`swaks` falla con autenticación**: confirme que la contraseña usada es la vigente (`setup email update` la rota); una rotación reciente invalida clientes ya configurados con la contraseña anterior. - **Algo sugiere que el contenedor vive en `mcps-hpc-01`**: es incorrecto desde antes del 2026-06-24; el contenedor real está en `mcps-vpn-server`. Puede seguir existiendo un contenedor viejo detenido (`Exited`) en `mcps-hpc-01` — no reactivarlo pensando que es el servicio real. - **Una cuenta no manda ni recibe**: revise si está en la lista de restringidas (`setup email restrict list send|receive`) antes de asumir que es un problema del servidor.