Mail-in-a-Box: Servidor de Correo Simple y Completo

Mail-in-a-Box convierte un servidor Ubuntu fresco en un servidor de correo completamente funcional con un único comando de instalación, configurando automáticamente Postfix, Dovecot, Nextcloud, DNS, SSL y todo lo necesario para gestionar correo electrónico propio. Es la solución ideal para quienes buscan simplicidad sin sacrificar las funcionalidades esenciales como webmail, sincronización de contactos y calendario.

Requisitos Previos

  • Ubuntu 22.04 LTS (única distribución oficialmente soportada)
  • Servidor VPS con mínimo 512 MB de RAM (1 GB recomendado)
  • IP pública estática con puerto 25 desbloqueado
  • Nombre de host configurado (ej: box.tudominio.com)
  • Dominio con acceso a la configuración DNS
  • El servidor debe estar dedicado exclusivamente a Mail-in-a-Box

Importante: Mail-in-a-Box toma el control total del servidor. No lo instales en un servidor que ya tenga otros servicios como Nginx, Apache, o cualquier otra configuración.

Instalación Automatizada

# Configurar el hostname correcto antes de instalar
sudo hostnamectl set-hostname box.tudominio.com

# Editar /etc/hosts para que resuelva correctamente
sudo tee -a /etc/hosts << 'EOF'
127.0.0.1   box.tudominio.com box
EOF

# Actualizar el sistema
sudo apt update && sudo apt upgrade -y

# Ejecutar el instalador oficial (descarga e instala todo automáticamente)
curl -s https://mailinabox.email/setup.sh | sudo bash

# El instalador solicitará:
# 1. Dirección de correo: [email protected]
# 2. Hostname del servidor: box.tudominio.com
# 3. Zona horaria del servidor

El proceso de instalación dura entre 15 y 30 minutos y configura automáticamente:

  • Postfix - servidor SMTP para envío/recepción
  • Dovecot - servidor IMAP para acceso a buzones
  • Roundcube - webmail
  • Nextcloud - contactos y calendario (CardDAV/CalDAV)
  • Nginx - servidor web y proxy
  • Let's Encrypt - certificados SSL automáticos
  • nsd - servidor DNS autoritativo
  • Spamassassin + ClamAV - antispam y antivirus
  • Fail2ban - protección contra ataques de fuerza bruta

Configuración de DNS

Mail-in-a-Box incluye un servidor DNS integrado. Tienes dos opciones:

Opción A: Usar el DNS integrado de Mail-in-a-Box

# En tu registrador de dominios, apunta los nameservers a tu servidor:
# ns1.box.tudominio.com  →  TU_IP_DEL_SERVIDOR
# ns2.box.tudominio.com  →  TU_IP_DEL_SERVIDOR (misma IP si solo tienes un servidor)

# Accede al panel de administración para ver todos los registros DNS:
# https://box.tudominio.com/admin
# Ve a: Sistema > DNS externo (para ver los registros a configurar)

Opción B: Usar DNS externo (registros manuales)

El panel de administración muestra exactamente qué registros DNS debes crear:

; Registros esenciales mostrados por Mail-in-a-Box
; Accede a: Admin > Sistema > DNS externo

; MX
tudominio.com.          MX  10  box.tudominio.com.

; A (IPv4) y AAAA (IPv6)
box.tudominio.com.      A   TU_IP_PUBLICA

; SPF
tudominio.com.          TXT "v=spf1 mx -all"

; DKIM (la clave la genera Mail-in-a-Box)
mail._domainkey.tudominio.com.  TXT "v=DKIM1; k=rsa; p=CLAVE_LARGA..."

; DMARC
_dmarc.tudominio.com.   TXT "v=DMARC1; p=quarantine"

; PTR/rDNS (configurar con tu proveedor de VPS)
; TU_IP  →  box.tudominio.com

Verifica el estado del DNS desde el panel:

Panel admin > Sistema > Estado del sistema
Todos los indicadores deben aparecer en verde ✓

Acceso al Webmail y Panel de Administración

# Panel de administración
# URL: https://box.tudominio.com/admin
# Usuario: [email protected]
# Contraseña: la que introdujiste durante la instalación

# Webmail (Roundcube)
# URL: https://box.tudominio.com/mail

# Gestionar usuarios via línea de comandos
sudo mailinabox

# O directamente con la herramienta de gestión
sudo /home/user-data/bin/manage.sh

# Listar usuarios existentes
sudo python3 /home/user-data/management/mailconfig.py users

Añadir usuarios desde el panel de administración:

Panel admin > Correo > Usuarios > Añadir usuario de correo
- Dirección: [email protected]
- Contraseña: ContraseñaSegura
- Privilegios: (opcional) Admin del panel

Configuración de clientes de correo:

IMAP (correo entrante):
  Servidor: box.tudominio.com
  Puerto: 993
  Seguridad: SSL/TLS
  Usuario: [email protected]

SMTP (correo saliente):
  Servidor: box.tudominio.com
  Puerto: 587
  Seguridad: STARTTLS
  Usuario: [email protected]

Sincronización de Contactos y Calendario

Mail-in-a-Box incluye Nextcloud para sincronización CardDAV y CalDAV:

Acceso a Nextcloud:
URL: https://box.tudominio.com/cloud

Configuración CardDAV (contactos):
  Servidor: https://box.tudominio.com/cloud/remote.php/dav
  Usuario: [email protected]

Configuración CalDAV (calendario):
  Servidor: https://box.tudominio.com/cloud/remote.php/dav
  Usuario: [email protected]

Para clientes de escritorio:

# En Thunderbird: instalar el add-on TbSync o CardBook
# En macOS/iOS: Ajustes > Cuentas > Añadir cuenta CardDAV/CalDAV

# URL directa para algunos clientes:
# Contactos: https://box.tudominio.com/cloud/remote.php/dav/addressbooks/[email protected]/contacts/
# Calendario: https://box.tudominio.com/cloud/remote.php/dav/calendars/[email protected]/personal/

Backups y Mantenimiento

Mail-in-a-Box hace backups automáticos cifrados:

# Ver configuración de backups
cat /home/user-data/backup/secret_key.txt
# Esta clave se usa para cifrar los backups - ¡guárdala en un lugar seguro!

# Ver los backups existentes
ls -lh /home/user-data/backup/encrypted/

# El destino de backup se configura en el panel:
# Panel admin > Sistema > Backup

# Opciones de destino:
# - Local (por defecto): /home/user-data/backup/
# - S3 (AWS S3 o compatible): s3://tu-bucket/
# - SFTP: sftp://usuario@servidor/ruta/

# Forzar un backup inmediato
sudo mailinabox  # Opción 1 - Sistema > Backup ahora
# O directamente:
sudo python3 -m management.backup status

Restaurar desde backup:

# Listar backups disponibles
sudo duplicity collection-status \
  --encrypt-key /home/user-data/backup/secret_key.txt \
  file:///home/user-data/backup/encrypted/

# Restaurar el correo de un usuario específico
sudo duplicity restore \
  --encrypt-key /home/user-data/backup/secret_key.txt \
  --file-to-restore home/user-data/mail/mailboxes/tudominio.com/usuario \
  file:///home/user-data/backup/encrypted/ \
  /tmp/restauracion-correo/

Actualización de Mail-in-a-Box

# Actualizar a la última versión disponible
sudo mailinabox

# O ejecutar directamente el script de actualización
curl -s https://mailinabox.email/setup.sh | sudo bash

# Verificar la versión actual
cat /etc/mailinabox.conf | grep VERSION

# Comprobar el estado del sistema tras la actualización
# Panel admin > Sistema > Estado del sistema

Solución de Problemas

Correos rechazados por el destinatario:

# Verificar la reputación de tu IP
# Visita: https://mxtoolbox.com/blacklists.aspx
# Introduce TU_IP_PUBLICA

# Comprobar el registro PTR/rDNS
dig -x TU_IP_PUBLICA

# Ver los logs de Postfix
sudo tail -f /var/log/mail.log

# Comprobar el estado de todos los servicios
sudo mailinabox  # Opción: Estado del sistema

Error "502 Bad Gateway" al acceder al panel:

# Reiniciar los servicios de Mail-in-a-Box
sudo systemctl restart nginx
sudo systemctl restart mailinabox

# Ver logs de nginx
sudo tail -f /var/log/nginx/error.log

El certificado SSL ha expirado:

# Forzar renovación del certificado Let's Encrypt
sudo mailinabox  # Ejecutar de nuevo el instalador
# O directamente:
sudo certbot renew --force-renewal
sudo systemctl reload nginx

No llegan correos al servidor:

# Verificar que el puerto 25 está abierto
sudo ss -tlnp | grep 25
telnet box.tudominio.com 25

# Comprobar el registro MX
dig MX tudominio.com

# Ver la cola de correos entrantes
sudo postqueue -p

Conclusión

Mail-in-a-Box hace que montar un servidor de correo propio sea accesible incluso para quienes no tienen experiencia previa en administración de correo, automatizando toda la configuración compleja. Su panel de administración integrado, el sistema de backups cifrados y el seguimiento del estado del sistema en tiempo real hacen que el mantenimiento sea mínimo. Para necesidades más avanzadas o múltiples dominios con mucho tráfico, considera Mailcow como alternativa más flexible.