todas las guías

// cómo solucionarlo

Gmail "550-5.7.1 ... is not RFC 5322 compliant": corrige las cabeceras ausentes o duplicadas

Gmail ha rechazado tu email porque sus cabeceras incumplen el estándar RFC 5322: From, Date o Message-ID ausentes o duplicados. Así se soluciona.

Qué significa

Todo email tiene una sección de cabeceras con campos como From, To, Date, Subject y Message-ID. RFC 5322 es el estándar que indica cómo deben escribirse estas cabeceras. Gmail rechaza los emails que incumplen las reglas básicas. El rebote suele tener este aspecto:

550-5.7.1 [203.0.113.10] Our system has detected that this message is not
550-5.7.1 RFC 5322 compliant:
550-5.7.1 'From' header is missing.
550-5.7.1 To reduce the amount of spam sent to Gmail, this message has been
550-5.7.1 blocked. Please visit
550-5.7.1  https://support.google.com/mail/?p=RfcMessageNonCompliant
550 5.7.1 and review RFC 5322 specifications for more information.

La línea del medio te dice qué falla, por ejemplo Multiple 'From' headers found o una cabecera ausente o no válida. Léela con atención: es la clave para solucionarlo.

Por qué ocurre

Este error casi siempre viene de una aplicación, un script o un plugin que construye los emails por su cuenta, y no de un programa de correo normal:

  • Falta la cabecera From, o el From tiene una dirección no válida (espacios, sin dominio, comillas incorrectas alrededor del nombre visible).
  • Cabeceras duplicadas: dos líneas From, Subject, To o Date, a menudo porque el código añade una cabecera que la librería de correo ya incluye.
  • Falta Date o Message-ID, o la Date tiene un formato incorrecto.
  • Cabeceras mal formadas: líneas mal codificadas, caracteres no ASCII en una cabecera sin codificar, o un salto de línea roto que mezcla las cabeceras con el cuerpo.

Cómo comprobarlo

  • Envía un email de prueba: en la página de inicio de Delivmail (/), copia tu dirección de prueba única y envíale un email normal desde el mismo servidor, herramienta o buzón que provocó el rebote. Abre el informe cuando esté listo.
  • Revisa las cabeceras en el informe, o consulta el código fuente original del email (en Gmail, «Mostrar original»). Comprueba que hay exactamente un From, un Date, un Subject y un Message-ID.
  • Revisa el código que envía. Busca los sitios donde se añaden cabeceras a mano, como cadenas From: concatenadas en llamadas a mail() de PHP.

Cómo solucionarlo

  1. Usa una librería de correo adecuada (PHPMailer, Nodemailer, el módulo de email de tu framework) en lugar de construir las cabeceras como texto. Estas librerías añaden Date y Message-ID y codifican bien las cabeceras.
  2. Define exactamente una dirección From con un formato válido, por ejemplo:
    From: Your Shop <orders@yourdomain.com>
    Pon entre comillas los nombres visibles que contengan comas o caracteres especiales.
  3. Elimina las cabeceras duplicadas. Si la librería ya define From o Subject, no los vuelvas a añadir en una lista de cabeceras personalizadas.
  4. Añade Date y Message-ID si tu sistema no lo hace. Un Message-ID tiene este aspecto: <unique-id@yourdomain.com>.
  5. Codifica los caracteres especiales (acentos, eñes…) del Subject y de los nombres con la codificación integrada de tu librería.
  6. Usa los finales de línea correctos (CRLF) entre cabeceras y una línea vacía entre las cabeceras y el cuerpo.
  7. Actualiza los plugins (plugins de formularios o SMTP de WordPress, extensiones de tienda): las versiones antiguas provocan a menudo estos errores.

Comprueba que está solucionado

Envía un nuevo email desde la misma aplicación a una nueva dirección de prueba de Delivmail y revisa las cabeceras en el informe. Cuando sean correctas, vuelve a enviar el email a la dirección de Gmail que rebotó. Con este error no hay retraso por reputación: en cuanto las cabeceras son válidas, Gmail deja de rechazar por este motivo.

Comprueba que está solucionado

Un cambio de DNS puede tardar de unos minutos a unas horas. Después, envía un nuevo email de prueba o vuelve a escanear tu dominio.

Guías relacionadas