Uno de los principales problemas con el SMTP que tenemos los administradores del Fediverso es que a veces los e-mails de confirmación no acaban de llegar a servicios privados y privativos como pueden ser Gmail o Outlook.

El el siguiente tutorial os vamos a explicar algunas recomendaciones para tener configurado un SMTP de 10 para que lleguen correctamente a las bandejas de todos los nuevos usuarios del Fediverso.

Si necesitáis configurar un servidor SMTP de cero, os dejamos este artículo y sus siguientes partes de como configurar correctamente un servidor SMTP con Postfix, Dovecot y MariaDB.

Cómo configurar un servidor de correo seguro con Postfix, Dovecot y MariaDB [Parte 1]
En los siguientes 4 artículos veremos como configurar un servidor de correo seguro con Postfix y Dovecot. Además almacenaremos los dominios, los usuarios y los alias en una base de datos con MariaDB.
📢
Si ya tienes un servidor SMTP configurado, no es necesario que sigas las instrucciones del artículo de arriba, pero si es recomendable revisar que la configuración sea similar.

Tener configurado un hostname el servidor

Una de las cosas imprescindibles es tener un hostname configurado, para eso en el servidor con SMTP deberemos de configurar lo siguiente:

hostnamectl set-hostname mail.dominio.com
📢
Donde el dominio tiene que ser el dominio utilizado para la configuración del SMTP.

Tener registros DNS para el correo básicos

Los registros necesarios para el correo son los siguientes, podemos visualizarlos con el comando dt:

dt: Una herramienta CLI para mostrar información sobre su dominio
El comando dt es una herramienta bajo licencia Apache 2.0 escrita en Go. Es una herramienta CLI para DNS que muestra información sobre un dominio. En la actualidad, tiene las siguientes características: * Soporte de escáner de registros comunes (Tipo A, CNAME, TXT, etc). * Validación de cadenas…
mail.[dominioMastodon].    3600    IN      A       XXX.XXX.XXX.XXX
[dominioMastodon].         3600    IN      MX      10 mail.[dominioMastodon].
[dominioMastodon].         3600    IN      TXT     "v=spf1 a mx  ip4:XXX.XXX.XXX.XXX ~all"
📢
Donde [dominioMastodon] es nuestro dominio de mastodon y donde XXX.XXX.XXX.XXX es la IP del servidor SMTP.

Por lo general tenemos que tener un registro tipo A que apunte al servidor y que será el registro utilizado para SMTP. Se puede configurar mail. o mx. o incluso smtp. al final, lo importante es tener un registro apuntando al servidor SMTP.

Además tendremos que tener un registro MX que apunte directamente al registro tipo A anteriormente mencionado. Por lo general se recomienda utilizar 2 o más MX, pero si solo tenemos un servidor de SMTP -que seguramente será lo general si es autogestionado- podemos dejar uno sin problemas.

Finalmente, tendremos que tener un SPF configurado de la siguiente forma:

v=spf1 a mx ip4:XXX.XXX.XXX.XXX ~all

Donde XXX.XXX.XXX.XXX tendremos que poner la IP pública del servidor.

Configurar un rDNS

Los registros  de rDNS (Reverse DNS) son registros que hacen el trabajo contrario al funcionamiento del DNS. Como bien sabéis, el DNS permite crear registros con nombres y que respondan a una IP concreta.

Cuando accedemos a voidnull.es, en realidad estamos accediendo a una IP donde se aloja el blog. Esto es porque en el DNS tengo un registro para que voidnull.es responda a una IP concreta.

Concretamente para el rDNS utilizaremos unos registros llamados PTR. Por lo general utilizamos registros A o CNAME que son dominios que responden a una IP, el registro PRT hace la función contraria, es una IP que responde a un nombre de dominio.

# Registro A de voidnull.es
dig a voidnull.es
voidnull.es.            1470    IN      A       46.183.XXX.XXX

# Registro PRT de la IP del resultado de arriba:
dig -x 46.183.XXX.XXX
XXX.XXX.183.46.in-addr.arpa. 0   IN      PTR     voidnull.es.

Para el correo es necesario que mail.[dominioMastodon]. sea el PTR configurado para la IP de nuestro servidor.

dig -x XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX.in-addr.arpa. 0   IN      PTR     mail.[dominioMastodon].
Esta configuración del PTR nos dará puntuación para que servicios como Gmail y Outlook acepten los correos.

Crear registros DKIM y DMARC

El registro DKIM o DomainKeys Identified Mail es un registro que nos permite firmar el correo con el dominio a través de claves públicas indicadas en las zonas DNS de tu dominio.

De esta forma, el destinatario puede comprobar que el e-mail que hemos enviado ha sido enviado desde nuestro servidor y no ha sido interceptado y/o reenviado desde otro servidor no autorizado.

El registro DMARC o Domain-based Message Authentication, Reporting and Conformance -tela con el nombre-, es un registro que complementa al SPF y al DKIM. Este registro indica qué hacer cuando dan error los registros anteriores, para así poder tomar medidas necesarias lo antes posible.

Configurar DKIM y DMARC en servidor de correo Postfix
En el siguiente tutorial vamos a explicar como configurar correctamente los registros para el correo DKIM y DMARC.

No estar listado en ninguna RBL

Las RBL son las mal llamadas "black list" (listas negras). Cuando desde una IP hay evidencia de que se está enviando SPAM, algunos servicios añaden esa IP a un listado de no deseados para que otros servicios de anti-spam puedan utilizarlas para aceptar o no el correo proveniente de esa IP.

Si nuestra IP se encuentra en una lista de no deseados, entonces es muy posible que nuestro e-mail nunca llegue a buzones de Gmail o Outlook -entre otros-.

Por lo que es recomendable tener unas buenas políticas de configuración del correo para evitar entrar en una de estas listas, aunque a veces nos pueden meter en algunas sin muchos motivos.

Podemos revisar nuestra IP en diferentes webs, las que yo os aconsejo es la de Multi-RBL Check. Por experiencia es la mejor que funciona.

Si vemos que tenemos nuestra IP listada en alguna de estas listas, entonces tendremos que ir a la web oficial de esa lista para revisar el informe de SPAM o bien para delistar o pedir que lo hagan.

Muchas de estas RBL bloquean la IP temporalmente, es decir, si pasan 24h sin ningún tipo de evidencias de SPAM se desbloquean automáticamente solas. En cambio hay otras que incluso te piden pagar para desbloquear, por lo general, esas listas no suelen utilizarse.

Contenido del correo electrónico

Si bien es cierto que el contenido del e-mail que enviados desde Mastodon o Pleroma o lo que usemos no lo podemos gestionar nosotros, ya que se tratan de plantillas. Tenemos que tener en cuenta que los e-mails que se envían, no deben de contener elementos HTML de imágenes sin descripción, no se deben de añadir iframes, etc.

Por lo general, como que son plantillas las que se envían a los usuarios para validar el e-mail y otras tareas no deberíamos de tener muchos problema con esto.

Revisar que la configuración

Existen varios servicios interesantes para validar la configuración de nuestro servidor de SMTP. Por ejemplo, uno que recomiendo mucho se llama Mail-Tester con este servicio podemos enviar un e-mail a la cuenta de correo que nos aparece y nos dará un informe detallado de lo que podemos mejorar.

Por ejemplo, he enviado un e-mail a Mail-Tester desde la cuenta que envía los avisos de registro de mi nodo, este es el resultado:

9/10

Me falta un punto para tener 10/10. ¿Que es lo que me falta? Crear un registro DKIM. Como ya he comentado, no son registros estrictamente importantes y necesarios, pero por ejemplo a Gmail le gusta mucho validar estas cosas. Esto podría ser una mejora para el futuro, pero de momento, entran correctamente en la bandera de entrada de Gmail.