Todos los artículos

Helo command rejected: cómo configurar el HELO de tu servidor

··5 min de lectura

Un error "Helo command rejected" significa que al servidor receptor no le gustó el nombre con el que se presentó tu servidor. Configura el HELO con un nombre de host completo como mail.example.com, dale a ese nombre un registro A que apunte a la IP de envío y configura el PTR de la IP con ese mismo nombre. Después envía un mensaje de prueba a una bandeja externa y lee el encabezado Received para confirmar lo que tu servidor anuncia de verdad.

Esto es un ajuste del servidor, no un problema de la lista. Un rechazo de HELO no dice nada sobre si el destinatario existe, así que no borres direcciones por eso. Spamhaus también está implementando un requisito de HELO y DNS inverso desde noviembre de 2026; nuestro artículo sobre el requisito de HELO y PTR de Spamhaus explica lo que pide. Este artículo es la corrección práctica.

Primero lee el error

Las dos versiones más comunes vienen de las restricciones de HELO de Postfix en el lado receptor:

Error Restricción de Postfix Código predeterminado Qué significa
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname reject_non_fqdn_helo_hostname 504 (permanente) El nombre no tiene parte de dominio
450 4.7.1 <...>: Helo command rejected: Host not found reject_unknown_helo_hostname 450 (temporal) El nombre no tiene registro A ni MX
501 ... Helo command rejected: Invalid name reject_invalid_helo_hostname 501 (permanente) El nombre está mal formado

Nuestra página de SMTP 504 tiene más ejemplos del primero. Un rechazo relacionado, 550 5.7.25, tiene que ver con que la IP no tenga registro PTR, no con el HELO.

Paso 1: averigua qué anuncia tu servidor

No confíes solo en el archivo de configuración; un contenedor, un relay o un segundo transporte pueden sobrescribirlo.

  1. Envía un mensaje desde el servidor a un buzón externo que controles.
  2. Abre los encabezados completos del mensaje. El encabezado Received que agrega el servidor receptor dice algo como Received: from mail.example.com (mail.example.com [203.0.113.25]). El primer nombre después de from es el HELO; la IP entre corchetes es la IP de envío.
  3. Pega esa línea Received en el verificador de nombre HELO. Lee el HELO y la IP de la línea y hace las comprobaciones de DNS.

El analizador de encabezados de correo sirve si el encabezado es largo y quieres ver los saltos ordenados.

Paso 2: cambia el nombre HELO

Postfix. El cliente SMTP anuncia smtp_helo_name, que por defecto es $myhostname. Configura cualquiera de los dos en /etc/postfix/main.cf:

myhostname = mail.example.com
# or, to change only what the client announces:
smtp_helo_name = mail.example.com

Ejecuta postfix reload. Si envías desde varias IP con transportes separados en master.cf, revisa cada uno por si tiene su propio -o smtp_helo_name=.

Exim. El transporte smtp usa helo_data, que por defecto es el nombre de host principal del servidor. Configura primary_hostname = mail.example.com en la configuración principal, o helo_data = mail.example.com en el transporte, y reinicia Exim.

Exchange Server. El nombre viene del FQDN del conector de envío. En el centro de administración de Exchange, abre el conector de envío y configura el FQDN, o ejecuta Set-SendConnector "Internet" -Fqdn mail.example.com en el Exchange Management Shell.

Apps y equipos. Impresoras, CRM y scripts que envían SMTP directamente suelen tener un campo "HELO" o "local hostname" (nombre de host local) en su configuración SMTP. Si está vacío, muchos usan por defecto el nombre de la máquina, y así es como localhost y DESKTOP-1234 terminan en el HELO.

Paso 3: haz que el DNS coincida

  1. Registro A: en el DNS de tu dominio, agrega un registro A para mail.example.com que apunte a la IP de envío (y AAAA si envías por IPv6).
  2. Registro PTR: pide a quien es dueño de la IP, normalmente tu proveedor de hosting o de nube, que configure el DNS inverso de la IP como mail.example.com. No puedes configurarlo en tu propia zona DNS. Revísalo con la búsqueda de DNS inverso.
  3. Confirmación directa: el registro A del nombre del PTR debe apuntar de vuelta a la misma IP. Nuestro artículo sobre registros PTR para correo lo explica con comandos dig.

El RFC 5321 solo exige que el HELO sea el nombre de dominio completo del cliente (o una dirección literal). El PTR coincidente es lo que piden las directrices para remitentes de Spamhaus y sus comprobaciones de listado, y no deja nada que un receptor pueda cuestionar.

Paso 4: confírmalo

Envía otra prueba a una bandeja externa y lee el nuevo encabezado Received. El HELO debe ser mail.example.com, y el verificador de nombre HELO debe aprobar el registro A, el PTR y la confirmación directa. Los cambios de DNS pueden tardar hasta el TTL del registro en verse.

Errores que hacen volver el problema

  • El dominio raíz como HELO (example.com), cuando su registro A apunta al sitio web.
  • El nombre predeterminado del proveedor (vps12345.provider.net) como HELO mientras el PTR dice otra cosa.
  • Un sufijo privado como .local o .lan.
  • Varios nombres HELO para un mismo remitente. Spamhaus dice que varios valores HELO que resuelven a IP distintas "may indicate residential proxy and/or malware behaviour" (pueden indicar un proxy residencial o malware).
  • Un HELO corregido con una IP en lista negra. Que los nombres coincidan no vuelve confiable a la IP; pasa también el verificador de listas negras de IP.

Dónde encaja SimpleVerifier

El verificador de HELO, la búsqueda de DNS inverso y el analizador de encabezados son gratuitos. La parte de pago de SimpleVerifier es la verificación de listas, que mantiene bajos los rebotes una vez que el correo fluye; no configura tu servidor. Las primeras 100 comprobaciones son gratis al iniciar sesión con Google en la página de verificación. Pro cuesta $39 al mes: los primeros 100.000 correos de cada mes van a máxima velocidad y después las listas grandes avanzan más despacio, sin cortes. Consulta los precios.

Preguntas frecuentes

¿Qué significa 'Helo command rejected: need fully-qualified hostname'?

El servidor receptor, muchas veces Postfix con reject_non_fqdn_helo_hostname, rechazó tu HELO porque el nombre no es un nombre de dominio completo. El código de respuesta predeterminado de Postfix para esto es 504. Configura el HELO con un nombre como mail.example.com que tenga registro A.

¿Qué significa 'Helo command rejected: Host not found'?

El nombre que anunció tu servidor no resuelve en el DNS. reject_unknown_helo_hostname de Postfix devuelve 450 por defecto, un error temporal, así que tu servidor volverá a intentar. Agrega un registro A para ese nombre o cambia el HELO a un nombre que lo tenga.

¿El HELO debería ser mi dominio raíz, como example.com?

Solo si el registro A de example.com apunta al servidor de correo, lo que normalmente no pasa; apunta al sitio web. Usa un nombre de host de correo como mail.example.com con su propio registro A apuntando a la IP de envío.

¿Tengo que cambiar algo si envío con Google Workspace o un ESP?

No. Sus servidores anuncian su propio HELO y son dueños de las IP y los registros PTR. Esto aplica cuando tú administras Postfix, Exim, Exchange o un relay, o cuando una app o un equipo envía SMTP directamente.

Verifica correos por 39,00 USD/mes, sin cortes

Comprobación SMTP real del buzón. Sin créditos ni cobro por correo.

Empezar

Leer el original en inglés