Al intentar enviar correo a cuentas de GMail desde una aplicación PHP en mi servidor Debian, me encontré con este error en el log de exim4 (/var/log/exim4/mainlog): Our system has detected that this message does not meet IPv6 sending guidelines regarding PTR records and authentication. Please review https://support.google.com/mail/?p=IPv6AuthError for more information.



Este error se presenta porque el servidor cuenta con una dirección IPv6 configurada en su interfaz, y el dominio no cumple con las políticas de Google (no cuenta con un registro PTR para dicha dirección IPv6). Al mismo tiempo, exim4 intenta por defecto enviar el correo primero utilizando IPv6 y luego IPv4 (si el primer intento de conexión utilizando IPv6 falla). En este caso, el primer intento con IPv6 es exitoso, pero Google nos rechaza por no cumplir sus políticas. En definitiva el correo es rechazado.

Para solucionarlo hay dos alternativas: mejorar la configuración de resolución inversa y cumplir con las políticas de Google para direcciones IPv6, si esto está a nuestro alcance (ya que en la mayoría de los casos, especialmente cuando se trata de servidores en la nube, habrá que solicitar este cambio a nuestro ISP); o directamente deshabilitar IPv6 (la solución rápida y fácil).

Este artículo muestra cómo aplicar la solución rápida y fácil, a lo Max Power.

El error completo en el log de exim4 es el siguiente:

2018-02-28 08:15:16 1er1Zk-0001Wo-6g <= www-data@linuxito.com U=www-data P=local S=650
2018-02-28 08:15:17 1er1Zk-0001Wo-6g ** xxxx@gmail.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after end of data: host gmail-smtp-in.l.google.com [2607:f8b0:4002:c06::1b]: 550-5.7.1 [x:x::x] Our system has detected that this message does\n550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and\n550-5.7.1 authentication. Please review\n550-5.7.1  https://support.google.com/mail/?p=IPv6AuthError for more information\n550 5.7.1 . c2si257912ywc.562 - gsmtp

Lo primero que se me ocurrió fue deshabilitar IPv6 a nivel sistema operativo directamente en la configuración del kernel Linux. Esto efectivamente solucionó el problema:

2018-02-28 08:20:25 1er1ej-0001fk-LY gmail-smtp-in.l.google.com [2607:f8b0:4002:c06::1b] Network is unreachable
2018-02-28 08:20:25 1er1ej-0001fk-LY => xxxx@gmail.com R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [74.125.196.27] X=TLS1.2:RSA_AES_128_CBC_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2018-02-28 08:20:25 1er1ej-0001fk-LY Completed

Sin embargo, notar que exim4 sigue intentado conectarse primero a través de IPv6. La conexión IPv6 falla arrojando el error "Network is unreachable" para luego continuar con éxito a través de IPv4.

La solución definitiva consiste en deshabilitar IPv6 a nivel agente de correo, o sea a nivel exim4.

Para ello es necesario editar el archivo /etc/exim4/update-exim4.conf.conf y agregar la siguiente línea:

disable_ipv6=true

Luego ejecutar (como root):

# update-exim4.conf

Para actualizar la configuración de exim4, y reiniciar el servidor de correo:

# service exim4 restart

Ahora el correo saliente se envía directamente a través de IPv4:

2018-02-28 08:29:25 1er1nR-0001uG-Fj <= www-data@linuxito.com U=www-data P=local S=672
2018-02-28 08:29:25 1er1nR-0001uG-Fj => xxxx@gmail.com R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [74.125.21.27] X=TLS1.2:RSA_AES_128_CBC_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2018-02-28 08:29:25 1er1nR-0001uG-Fj Completed

De esta forma se evita que exim4 intente conectarse primero a través de IPv6 (por más que el sistema soporte IPv6 y cuente con una interfaz configurada de manera correcta con una dirección IPv6 válida).

Para más información ver las siguientes páginas de manual:

  • man exim4
  • man update-exim4.conf
  • man exim4-config_files

Referencias


Tal vez pueda interesarte


Compartí este artículo