74 lines
3.8 KiB
Markdown
74 lines
3.8 KiB
Markdown
+++
|
|
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
|
|
|
|
```bash
|
|
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`):
|
|
|
|
```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 '<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.
|