Mailing
Para esta práctica realizaremos un servidor de correos SMTP e IMAP y lo haremos funcionar con clientes de correos. A continuación te dejo el índice de la guía:
Dovecot-imapd como servidor IMAP - (MDA)

Postfix
- Instalación
sudo apt update
sudo apt install postfix
Durante la instalación de Postfix, se te pedirá que elijas el tipo de configuración. Selecciona "Sitio de Internet
" para configurar Postfix como un servidor de correo independiente. Como dominio usaremos el que configuramos en el servidor DNS, alexdns.local
- Configuración
Una práctica conveniente es hacer una copia de seguridad de los archivos de configuración que vayamos a modificar. Para ello, hacemos:
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.BKP
Dentro de la configuración, asegúrate de que las siguientes líneas estén configuradas adecuadamente:
myhostname = mail.alexdns.local # Cambia este por el nombre de tu servidor
mydomain = alexdns.local # Cambia este por tu dominio
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
#Añade esto:
home_mailbox = Maildir/
La última linea nos servirá para que Postfix acepte Maildir
.
Para que funcionen los cambios, se reinicia Postfix
:
sudo systemctl restart postfix
Dovecot
- Instalación
Para la instalación de Dovecot, existen tres modulos principales (dovecot-core, dovecot-imapd y dovecot-pop3d
) de las cuales instalaremos el software principal "dovecot-imapd
" que es el que usaremos principalmente para el trabajo de descarga de correos en local:
sudo apt install dovecot-imapd
- Configuración
Para Dovecot, configuraremos la autenticación y, como antes, el uso del formato Maildir
en sustitución de mBox
. Una vez instalado podemos comprobar que Dovecot:
Está escuchando en los puertos 143 y 993 que corresponden a IMAP e IMAPS.
Utiliza el mismo log file /var/log/mail.log que Postfix (MTA).
La configuración está dividida en varios ficheros dentro del directorio /etc/dovecot
.
Ahora vamos a configurar los mailboxes para aceptar Maildir
. Para ello primero realizaremos la copia de seguridad del archivo de configuración:
sudo cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.BKP
Observa en este punto del archivo de configuración 10-mail.conf
que nos dice explícitamente que podemos hacer el cambio. Así que vamos y editamos el archivo:
sudo nano /etc/dovecot/conf.d/10-mail.conf
y buscamos la directiva mail_location
y descomentamos la que corresponde a esta:
mail_location = maildir:~/Maildir
y comentamos la que esta activa actualmente.
- Comprobación
Por último, reinicia el servicio para que los cambios surtan efecto:
sudo systemctl restart dovecot
Para mostrar la configuración actual de Dovecot en formato legible (incluyendo todos los parámetros y valores configurados en los archivos de configuración) podemos usar el siguiente comando:
dovecot -n
Mailutils
Mailutils nos servirá como MUA para poder enviar/recibir correos por línea de comandos. Maildir-utils
son una serie de herramientas que nos facilitaran la navegación entre correos por terminal.
- Instalación
La instalación será como siempre:
sudo apt-get install mailutils maildir-utils
Existen alternativas de clientes de correos por terminal como son mutt
, alpine
o notmuch
Comprobación del funcionamiento
Configuración de usuarios de correo
Por ahora tendremos el handicap de que los usuarios de cliente de correo deben ser los mismos del servidor así que, para crear usuarios de correo, utilizamos el comando adduser
para añadir el usuario "larios"
:
sudo adduser larios
Verificación
Puedes verificar si Postfix y Dovecot están funcionando correctamente con los siguientes comandos:
sudo postfix check
Prueba de envío y recepción de correo
Puedes enviar un correo electrónico a una cuenta en tu servidor y luego comprobar si se ha recibido correctamente utilizando este cliente de correo electrónico usando comandos como mail
.
Para probar el servicio de correo vía terminal basta escribir algo como lo siguiente:
echo "Este es el body del email" | mail -s "Este el asunto" ubuntu@alexdns.local
Si vamos al home del único usuario instalado en el sistema, "ubuntu
", veremos que existe un directorio llamado Maildir
que contiene la estructura básica de un buzón de correos. Vamos a la carpeta o directorio /home/ubuntu/Maildir/new
y vemos que hay dos correos sin enviar.
Si vamos a comprobar algún correo en cuestión:
ls -R ~/Maildir
Veremos ahora el correo recien llegado y podemos leerlo con:
more /home/ubuntu/Maildir/new/16589874301.V587458I62M354.ubuntu
Prueba con Thunderbird
Para la prueba con Thunderbird deberás acceder a la otra MV cliente y configurar:
Thunderbird instalado
Configuramos Thunderbird
Dentro de la interfaz de configuración de usuario de Thunderbird, deberemos añadir cualquiera de los dos usuarios creados con el dominio correspondiente.

Al clicar directamente en aceptar, hará la autodetección del servidor, en ese momento, si todo ha ido bien, se mostrará algo parecido a lo siguiente:



Prueba de envío de Thunderbird
Ahora ya podemos dedicarnos a excribir y comunicarnos con el otro usuario creado:

Te puede poner varios problemas para enviarlo sin el correspondiente certificado pero obvia los mensajes y vuelve a intentarlo.
Desde el servidor, ahora podemos comprobar el mail. Si volvemos a /home/ubuntu/Maildir/new
deberíamos ver un nuevo correo en almacenado en el inbox. Con un cat
o un more
podemos ver (a excepción de la imagen obviamente que s envía en base64 ) el contenido del mensaje:

El contenido del archivo será este:

Para revisar mejor el contenido del correo, podemos usar el comando mu view
seguido de la ruta al archivo de mensaje dentro del directorio Maildir. Por ejemplo:
mu view /home/ubuntu/Maildir/new/1712214375.Vfd00I47d4dM557656.jupiter
Deberías ver algo así:

Prueba de recibo de Thunderbird
Una vez completado esto, podemos hacer el proceso contrario; vamos a enviar correo del servidor por comandos al usuario con el cliente de Thunderbird conectado.
Empezamos por escribir un correo y le adjuntaremos algún archivo creado:
sudo nano laranamagica.txt

Ahora pasamos a crear el mail con el adjunto:
mail -A /home/laranamagica.txt larios@alexdns.local
Esto nos desplegará las opciones;
lo primero que te pedirá será usuarios en copia (CC), pulsa
Enter
al terminar.lo siguiente ingresar el asunto del correo electrónico en la primera línea, pulsa
Enter
al terminar.Finalmente, escribir el cuerpo del correo electrónico, pula
Enter
y en la nueva linea, pulsaCtrl+D
para enviar. El procedimiento sería algo así:
Cc: [Enter]
Subject: Mira lo que hace la rana![Enter]
Para verlo tendrás que abrir el adjunto.[Enter]
[Enter]
Ánimo![Return]
[Ctrl+D]
Al guardar no saldrá ningún mensaje de completado pero si vamos al cliente de Thunderbird, deberíamos ver ahora el mensaje:

Conclusiones
Como ves, tener un servidor de correos es una utilidad muy interesante y divertida para nuestro servidor. Aunque la mayoría de empresas externalicen el servidor de correo con outlook, gmail o cualquier servicio de dominio propio, como administradores de sistemas es importante saber manejar estos protocolos y software.
Como curiosidad, en la siguiente pagina puedes revisar el estado de tu dominio de correo: https://mxtoolbox.com/
Webgrafía
Última actualización