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.


