Files
clusterlogs/content/manuales/2026-08-19-run-20260819-e3a1c3-administrar-el-servidor-de-correo-docker-mailserver.md

3.8 KiB

+++ 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/<usuario>/), 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

sudo podman exec mailserver setup email list                    # listar cuentas + tamaño
sudo podman exec mailserver setup email update <correo> [<pass>] # cambiar password
sudo podman exec mailserver setup email del <correo>              # dar de baja (borra Maildir)
sudo podman exec mailserver setup email restrict add|del send|receive <correo>  # 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):

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 '<pass>' \
  --tls --header 'Subject: asunto' --body 'texto'

Config reusable en ~/.swaks/<cuenta>.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.