Tutoriales técnicos
Montar un servidor de correo en un VPS (2025) - Práctica con contenedores de Docker Mailserver
La guía definitiva para autoalojar un servidor de correo en 2025. Usa Docker Mailserver para desplegar rápidamente un servicio de correo seguro y moderno, con explicaciones detalladas de la configuración de registros DNS (SPF/DKIM/DMARC/PTR), y aprende a evitar las listas negras de envío y lograr una puntuación de correo de 10/10.

En 2025, autoalojar un servidor de correo sigue siendo la "mazmorra definitiva" para los entusiastas de la tecnología. Aunque servicios gratuitos como Gmail y Outlook son cómodos, tener tu propio correo con dominio propio (como [email protected]) no solo parece profesional, sino que además te da control total sobre la privacidad de tus datos.
La configuración tradicional de Postfix + Dovecot es extremadamente tediosa y propensa a errores. Este artículo utiliza Docker Mailserver, una solución de código abierto en contenedores que integra Postfix, Dovecot, SpamAssassin, ClamAV y otros componentes, para que tengas un servidor de correo seguro y moderno funcionando en 10 minutos.
Antes de comenzar, asegúrate de confirmar los siguientes tres puntos, de lo contrario fracasarás al 100%:
- El puerto 25 es clave: la gran mayoría de los proveedores de VPS (AWS, GCP, Vulter, etc.) bloquean por defecto el tráfico saliente del puerto 25. Sin el puerto 25, no puedes enviar correo a otros buzones (como Gmail).
- Método de autodiagnóstico:
telnet smtp.gmail.com 25. Si no conecta, abre un ticket con el servicio de atención al cliente para solicitar el desbloqueo, o cambia a un proveedor que admita el puerto 25 (como Contabo, algunos centros de datos de Racknerd).
- Método de autodiagnóstico:
- Reputación de la IP: comprueba si la IP de tu VPS está en una lista negra (RBL). Si la IP está sucia, el correo enviado va directo a la carpeta de spam.
- DNS inverso (PTR): debes tener permiso para configurar registros PTR. Es la primera línea de defensa de los grandes proveedores de correo para rechazar el spam.
- Dónde hacerlo: ¡esto no se configura en Cloudflare! Ve al panel de control de tu proveedor de VPS (normalmente en la página Networking o IPv4 Settings), busca "Reverse DNS" o "PTR Records" y configúralo con tu dominio de correo (como
mail.example.com).
- Dónde hacerlo: ¡esto no se configura en Cloudflare! Ve al panel de control de tu proveedor de VPS (normalmente en la página Networking o IPv4 Settings), busca "Reverse DNS" o "PTR Records" y configúralo con tu dominio de correo (como
Si cumples las condiciones anteriores, ¡Let's Go!
Antes de desplegar el servicio, primero debes configurar el DNS. Supongamos que tu IP es 1.2.3.4 y el dominio es example.com.
Ve a tu proveedor de dominios (se recomienda Cloudflare) y añade los siguientes registros:
| Tipo | Nombre | Contenido (Value) | Descripción |
|---|---|---|---|
| A | mail | 1.2.3.4 | Dirección del servidor de correo |
| MX | @ | mail.example.com | Prioridad establecida en 10 |
| TXT | @ | v=spf1 mx ~all | Registro SPF: declara que solo se permite enviar correo al servidor del registro MX |
| A | example.com | 1.2.3.4 | (Opcional) Resolución del dominio principal |
Hay dos registros importantes más (DKIM y DMARC) que se configurarán después del despliegue.
Docker Mailserver necesita exponer varios puertos. Permite el tráfico entrante en el firewall del VPS (como UFW) o en el grupo de seguridad del proveedor de la nube:
- 25 (TCP): transferencia de correo SMTP (obligatorio)
- 80 y 443 (TCP): para solicitar certificados SSL de Let's Encrypt (obligatorio)
- 587 y 465 (TCP): envío de correo desde el cliente (SMTP Submission)
- 993 (TCP): recepción de correo desde el cliente (IMAP SSL)
# UFW 示例
ufw allow 25/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 587/tcp
ufw allow 465/tcp
ufw allow 993/tcp
-
Preparación del entorno: Asegúrate de tener Docker y Docker Compose instalados. Nota: si en tu VPS ya se está ejecutando Nginx/Caddy (ocupando el puerto 80), la solicitud automática de certificados de este tutorial fallará. Se recomienda desplegar en un VPS limpio.
-
Crear directorio y configuración:
mkdir -p mailserver/{config,data} && cd mailserver -
Obtener el archivo de configuración oficial (recomendado):
wget -O compose.yaml https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/compose.yaml wget -O .env https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/mailserver.env -
Modificar el archivo
.env:vim .env, céntrate en modificar los siguientes elementos:HOSTNAME=mail.example.com # 你的邮件服务器完整域名 DOMAINNAME=example.com # 你的主域名 SSL_TYPE=letsencrypt # 自动申请 SSL 证书 -
Iniciar el servicio:
docker compose up -d
Docker Mailserver proporciona un script setup.sh para gestionar el servicio.
-
Descargar el script de gestión:
wget -O setup.sh https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/setup.sh chmod +x setup.sh -
Crear una cuenta de buzón:
./setup.sh email add [email protected] strongPassword123 -
Generar claves DKIM (clave contra la suplantación):
./setup.sh config dkimLa clave pública generada se encuentra en
docker-data/dms/config/opendkim/keys/example.com/mail.txt. -
Ir a Cloudflare para añadir el registro DKIM: Consulta el contenido de
mail.txty extrae la cadena larga que va después dep=.- Tipo: TXT
- Nombre:
mail._domainkey - Contenido:
v=DKIM1; k=rsa; p=你的公钥字符串
-
Añadir un registro DMARC (mejora la reputación):
- Tipo: TXT
- Nombre:
_dmarc - Contenido:
v=DMARC1; p=none; rua=mailto:[email protected]
Unos minutos después de iniciar el servicio, solicitará automáticamente un certificado SSL mediante Let's Encrypt.
Parámetros de conexión del cliente:
- Dirección de correo:
[email protected] - IMAP (recepción):
mail.example.com, puerto 993 (SSL/TLS) - SMTP (envío):
mail.example.com, puerto 465 (SSL/TLS) o 587 (STARTTLS)
Introduce la información anterior en Outlook / Apple Mail en tu teléfono u ordenador para enviar y recibir correo.
Una vez completada la configuración, no te apresures a enviar correos masivos.
- Puntuación de prueba: visita Mail-Tester, obtén un buzón temporal y envía un correo desde tu servidor. Si sigues estrictamente los pasos anteriores (especialmente SPF/DKIM/PTR), deberías obtener la puntuación perfecta de 10/10.
- Copia de seguridad de datos (importante): todos los datos de correo y la configuración se almacenan en el directorio
mailserver/docker-data. ¡Asegúrate de hacer copias de seguridad periódicas de este directorio! Una vez perdido, todos los correos no se podrán recuperar. (Referencia: Solución de copia de seguridad automática para VPS)
Autoalojar el correo es un camino de cultivo; ¡que tu correo nunca acabe en la carpeta de spam!