Saltar al contenido principal

Lista de verificación para el envío y la verificación de entrega de correo exitosos

Se requerirá el siguiente software para las comprobaciones posteriores:

  • La utilidad host

    • Debian/Ubuntu: apt-get install bind9-host
    • CentOS: yum install bind9-host
  • La utilidad telnet

    • Debian/Ubuntu: apt-get install telnet
    • CentOS: yum install telnet

Registro MX

El registro MX es un tipo de registro DNS diseñado para registrar servidores de correo mediante el protocolo SMTP. Este registro es responsable de determinar el servidor al que debe entregarse un correo electrónico por el agente de correo del remitente. Puede haber varios tipos de registros con diferentes prioridades en un mismo dominio.

Puede comprobar si el correo funciona localmente o utiliza un servidor de correo de terceros usando el comando host:

host -t MX example.com

Al trabajar con el servidor de correo local, se mostrará una salida como la siguiente:

El correo de example.com es gestionado por 10 mail.example.com.

Cabe mencionar que la entrada mail.example.com también puede apuntar a otro servidor. Además, es necesario tener en cuenta que mail.example.com debe ser un registro A existente que apunte al servidor desde el que envía correos.

También puede ejecutar estos comandos para comprobarlo:

host example.com
host mail.example.com

Y comparar las direcciones IP a las que apuntan el dominio principal, en este caso example.com, y mail.example.com.

importante

Es necesario configurar un registro MX para que los servidores de correo puedan recibir su correo electrónico.

Ejemplo de registro MX:

Nombre: example.com.
Tipo: MX
Valor: mail.example.com.
Prioridad: 10

Firma DKIM

Con la ayuda de FASTPANEL®, la firma DKIM puede obtenerse en el menú de gestión → sección "Correo" haciendo clic en "DKIM" frente al dominio de correo requerido

Habilitar DKIM en FASTPANEL

En DNS, el registro debe añadirse de la siguiente manera:

Nombre: dkim._domainkey
Tipo: TXT
Valor: v=DKIM1; k=rsa; p=public_key

Aquí tiene un ejemplo del registro DKIM correcto

dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB

Puede encontrar más información sobre DKIM en https://wikipedia.org/wiki/DomainKeys_Identified_Mail

Registro SPF

La presencia de un registro SPF puede comprobarse ejecutando el comando host. En este caso, el comando tendrá este aspecto:

host -t TXT example.com

Con una salida como:

example.com texto descriptivo "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"

Tenga en cuenta que puede que ipv6 no esté presente en esta entrada. En este caso, la firma SPF tendrá este aspecto:

example.com texto descriptivo "v=spf1 ip4:ipv4_of_your_server a mx ~all"

nota

Es necesario señalar que debe haber un solo registro SPF

En DNS, el registro debe añadirse de la siguiente manera:

Nombre: example.com.
Tipo: TXT
Valor:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
o (si no se utiliza ipv6)
v=spf1 ip4:ipv4_of_your_server a mx ~all

Por ejemplo:

example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all

Puede obtener más información sobre SPF en https://wikipedia.org/wiki/Sender_Policy_Framework

Registro DMARC

En la mayoría de los casos, el valor del registro DMARC será el mismo.

En DNS, el registro debe añadirse de la siguiente manera:

Nombre: _dmarc
Tipo: TXT
Valor: v=DMARC1; p=none

Por ejemplo:

_dmarc.example.com. TXT v=DMARC1; p=none

Puede encontrar más información sobre DMARC en https://wikipedia.org/wiki/DMARC

Registro PTR y nombre de host del servidor

El registro PTR es un registro DNS inverso que convierte una dirección IP en un nombre. El propósito principal de este registro para el servidor de correo es eliminar la mayor parte del spam. Este registro permite determinar el nombre de un host del que proviene un correo electrónico. Lo más habitual es que un registro PTR contenga un nombre de dominio utilizado en el servidor.

El registro PTR asocia una dirección IP con un nombre de host. Si el registro PTR no está especificado correctamente, sus correos serán rechazados y no llegarán al destinatario.

El nombre de host debe especificarse como el nombre del dominio real que apunta al servidor, y el PTR debe apuntar al dominio, que a su vez apunta al servidor.

Por ejemplo, tiene un dominio example.com en su servidor.

Al ejecutar el comando:

host example.com

puede obtener la salida:

example.com tiene la dirección 1.2.3.4
El correo de example.com es gestionado por 10 mail.example.com.

Para evitar posibles problemas, se recomienda establecer el nombre de host y el registro PTR como un subdominio existente de segundo nivel, por ejemplo mail.example.com

Disponibilidad de puertos SMTP

Algunos proveedores de hosting cierran la posibilidad de usar puertos que se utilizan para enviar o recibir correo. Los puertos para los servicios de correo pueden ser 25, 587, 465, 143 y 993.

Una de las formas más sencillas de comprobar la disponibilidad de estos puertos es usar el comando telnet.

Para comprobar la conexión entrante desde un servidor de terceros

Ejecute el comando:

telnet ip_adress port

Por ejemplo, si intenta hacer telnet al puerto 25 en 1.2.3.4, el comando a ejecutar es:

telnet 1.2.3.4 25

Si la conexión se realiza correctamente verá una salida como:

Intentando 1.2.3.4...
Conectado a 1.2.3.4.
El carácter de escape es '^]'.

Si la conexión falla, la salida tendrá este aspecto:

Conectando a 1.2.3.4 ...
No se pudo abrir la conexión al host en el puerto some_port: La conexión falló

O:

telnet: No se puede conectar al host remoto: Tiempo de espera de la conexión agotado

Para una conexión saliente

Desde su servidor, ejecute el comando:

telnet smtp.gmail.com 25

Si la conexión se realiza correctamente verá una salida como:

Intentando 2a00:1450:4010:c0b::6c...
Conectado a smtp.gmail.com.
El carácter de escape es '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp

Tenga en cuenta que si utiliza hosting en la nube y usa el puerto 25 para su servidor SMTP, es muy probable que su proveedor de hosting esté bloqueando por defecto las conexiones salientes en el puerto 25. A continuación puede ver enlaces con instrucciones sobre cómo resolver este problema:

Además del bloqueo de puertos por parte de su proveedor de hosting, debe comprobar si los puertos de su servidor están cerrados o no. Tomemos como ejemplo iptables, que actúa como cortafuegos, usando el panel de control FASTPANEL. El comando para comprobar si existe una regla para un puerto específico, en este caso el 25, es:

iptables-save | grep 25

Si no tiene una regla para el puerto que desea comprobar, no se mostrará ninguna información. Si ve que hay una regla que bloquea el puerto del servicio de correo, debe eliminar esta regla con el comando:

iptables -D rule chain

Por ejemplo, ejecutó un comando y encontró lo siguiente:

iptables-save | grep 25

-A INPUT -p tcp -m tcp --dport 25 -j DROP

Esta regla no permite ningún acceso a su servidor a través del puerto 25, lo que impedirá el envío de correo

Para eliminar la regla use el comando:

iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP

Este ejemplo de comando le permite comprobar todos los puertos usados para el envío de correo

Influencia de IPv6 en el envío de correo

Si necesita usar ipv6 para sus servicios de correo, lo primero que debe hacer es comprobar si existe un registro PTR para ipv6 y si los servicios de correo están escuchando en ipv6 en determinados puertos.

Puede realizar la comprobación usando el comando:

netstat -nltpp | grep tcp6

El resultado de la salida de este comando será una lista de todos los servicios que usan ipv6, entre los cuales ya puede comprobar si su servicio de correo usa esta dirección. Lamentablemente, hoy en día el uso de ipv6 puede no funcionar correctamente incluso si ha realizado toda la configuración de forma correcta.

Si al comprobar los registros del servicio de correo descubre que el error está relacionado con ipv6 y toda la configuración es correcta, puede desactivar el uso de ipv6 para el servicio de correo.

En el ejemplo de exim4, la desactivación de ipv6 se ve así:

  1. Compruebe si la dirección ipv6 se usa para el servicio con el comando

    netstat -nltp | grep exim

    Compruebe si exim usa la dirección ipv6

  2. En el archivo de configuración /etc/exim4/exim4.conf.template debe añadirse la siguiente línea al principio del archivo:

    disable_ipv6=true

  3. Guarde los cambios en el archivo y luego reinicie el servicio con un comando como:

    systemctl restart exim4
  4. Ejecute el comando:

    netstat -nltp | grep exim

    para comprobar si el servicio ya no está en la lista

    Compruebe si ipv6 está desactivado para exim

Compruebe el envío de correo usando servicios de terceros

Después de haber comprobado todos los elementos anteriores, puede comprobar el envío de correo desde su servidor usando recursos de terceros.

Uno de los servicios más cómodos e informativos es https://www.mail-tester.com

Al usarlo, puede comprobar la calificación actual de su correo, obtener información sobre si los datos configurados anteriormente son correctos o no, así como recibir una recomendación para mejorar la calificación.

Para ello, solo tiene que enviar un correo electrónico a la dirección que aparece en el sitio y luego hacer clic en "Then check your score".

Pruebe su correo con mail-tester