Mailcow es una suite completa y fácil de usar para configurar y administrar un servidor de correo.


Mailcow es una suite completa y fácil de usar para configurar y administrar un servidor de correo. Esta suite incluye todo lo necesario para el correo:

  • ACME: Generación automática de certificados Let's Encrypt
  • ClamAV: Escáner antivirus (opcional)
  • Dovecot: Servidor IMAP/POP para la recuperación de correos electrónicos
  • MariaDB: Base de datos para almacenar información de usuarios, etc.
  • Memcached: Caché para el cliente de correo web SOGo
  • Netfilter: Integración similar a Fail2ban de @mkuron
  • Nginx: Servidor web para componentes de la pila
  • Olefy: Análisis de documentos de Office en busca de virus, macros, etc.
  • PHP: Lenguaje de programación de la mayoría de las aplicaciones web de Mailcow
  • Postfix: MTA (Agente de Transferencia de Correo) para el tráfico de correo electrónico en Internet
  • Redis: Almacenamiento para información de spam, claves DKIM, etc.
  • Rspamd: Filtro de spam con aprendizaje automático de correos basura
  • SOGo: Cliente de correo web integrado y interfaz Cal-/Carddav
  • Solr: Búsqueda de texto completo para conexiones IMAP para buscar correos electrónicos rápidamente (Descontinuado) (Opcional)
  • Unbound: Servidor DNS integrado para la verificación de DNSSEC, etc.
  • Watchdog: Para la monitorización básica del estado de los contenedores dentro de Mailcow

A continuación, te mostraré los pasos necesarios para desplegar un servidor de correo utilizando Mailcow en un servidor con sistema operativo Ubuntu.

Prerequisitos

Para instalar MailCow es necesario tener un servidor con 6GB de RAM como mínimo y un vcore. Tiene soporte para la mayoría de distribuciones, en este tutorial utilizaremos Debian 12.

Registros DNS para el correo

Recuerda que debes de crear primero los registros para el correo para que funcione todo correctamente, los registros que deberás de crear son los siguientes:

dt --scan example.com
.mail.example.com.       300     IN      A       xx.xx.xx.xx
.autodiscover.example.com       300     IN      CNAME       mail.example.com
.autoconfig.example.com       300     IN      CNAME       mail.example.com
example.com.     300     IN      IN      MX      10 mail.example.com
example.com.     300     IN      TXT     "v=spf1 mx a ip4:xx.xx.xx.xx ~all"
dkim._domainkey.     300     IN      TXT     "v=DKIM1;k=rsa;t=s;s=email;p=..."
💡
Recuerda que deberás de modificar example.com por el nombre de tu dominio y luego xx.xx.xx.xx por la IP de tu servidor de correo.

Instalación de Docker

Para la instalación de MailCow es necesario instalar Docker en nuestro sistema operativo. Para instalar Docker, deberás de seguir este otro tutorial:

Instalación de Docker en Debian 12
Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.
💡
Para este tutorial crearemos un usuario llamado mailcow para ejecutar los contenedores de Docker.

Instalación de MailCow

Utilizaremos el usuario que hemos creado y descargaremos el repositorio:

git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized

Lo primero que haremos será generar la configuración, para ello ejecutaremos el script generate_config.sh de la siguiente forma:

./generate_config.sh

Resultado del comando

Found Docker Compose Plugin (native).
Setting the DOCKER_COMPOSE_VERSION Variable to native
Notice: You´ll have to update this Compose Version via your Package Manager manually!
Press enter to confirm the detected value '[value]' where applicable or enter a custom value.
Mail server hostname (FQDN) - this is not your mail domain, but your mail servers hostname: mail.example.com
Timezone [Europe/Madrid]:
Which branch of mailcow do you want to use?

Available Branches:

  • master branch (stable updates) | default, recommended [1]
  • nightly branch (unstable updates, testing) | not-production ready [2]
    Choose the Branch with it´s number [1/2] 1
    Already on 'master'
    Your branch is up to date with 'origin/master'.
    Generating snake-oil certificate...
    [...]
    Copying snake-oil certificate...
    Detecting if your IP is listed on Spamhaus Bad ASN List...
    Check completed! Your IP is clean

Deberemos de poner el hostname de nuestro servidor y luego seleccionar la rama master ya que se trata de la versión estable del software.

Este script habrá generado un fichero llamado mailcow.conf donde podemos editarlo y hacer las modificaciones que creamos oportunas.

Así que lo primero que haremos será descargar los contenedores:

docker compose pull

Y finalmente los levantamos:

Acceder a la interfaz web

Ahora podemos acceder a la interfaz web para gestionar todo lo relativo a las cuentas de correo y configuración del servidor de correo.

Para ello deberemos de acceder desde la dirección https://mail.example.com y el acceso que deberemos de utilizar es usuario admin y la contraseña moohoo.

A partir de aquí ya deberías de poder añadir los dominios y configurar los buzones de correo para empezar a enviar e-mails.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación