Antes de modificar SPF, identifica el dominio que tu servicio de envío usa para su dirección envelope-from. Esa dirección recibe los rebotes y puede diferir de la dirección From que ve tu destinatario.
¿Qué dominio comprueba SPF?
SPF comprueba el dominio en SMTP MAIL FROM, la dirección envelope-from, o la identidad HELO del servidor. HELO es el nombre de host que un servidor de envío presenta al iniciar la conversación SMTP.
El receptor ya conoce la IP de conexión cuando recibe MAIL FROM, así que SPF puede ejecutarse antes de que llegue el cuerpo del mensaje. Cuando el remitente del sobre está vacío, como en MAIL FROM:<>, SPF usa la identidad HELO. RFC 7208, el estándar de SPF, también recomienda comprobar HELO por separado.
SPF no comprueba la dirección From visible. La alineación de DMARC conecta un dominio autenticado con esa dirección.
¿Cómo es un registro SPF?
Un registro SPF es un registro DNS TXT cuyo valor comienza con v=spf1, seguido de reglas de autorización.
example.com TXT "v=spf1 include:mailprovider.example ~all"
Aquí, include:mailprovider.example autoriza las IPs que pasan la política SPF de ese proveedor. ~all produce un softfail para las demás IPs. Sustituye el proveedor de ejemplo por la política que publica tu servicio de envío.
¿Qué significan los mecanismos y modificadores?
Los mecanismos comprueban la IP de conexión contra una condición. El modificador redirect delega la evaluación cuando ningún mecanismo coincide.
| Término | Efecto |
|---|---|
ip4, ip6 | Coincide con una dirección o red escrita directamente en el registro. |
a | Coincide con una dirección devuelta para el dominio indicado, usando la familia IP de la conexión. |
mx | Coincide con una dirección de un intercambiador de correo del dominio indicado. |
include | Coincide cuando la política referenciada devuelve pass para esta IP. |
exists | Coincide cuando el nombre DNS especificado tiene un registro A; las macros pueden construir ese nombre a partir de la conexión. |
redirect= | Evalúa la política de otro dominio cuando ningún mecanismo coincide; un mecanismo all lo hace inefectivo. |
ptr | Comprueba nombres DNS inversos validados; no lo añadas a registros nuevos porque la consulta es lenta y poco fiable. |
all | Coincide con todas las IPs restantes; su calificador determina el resultado. |
Los mecanismos de dirección se escriben ip4 y ip6. Una entrada ptr puede aparecer en una política más antigua, pero RFC 7208 desaconseja su uso aunque exige que los validadores lo admitan.
¿Qué cambian los calificadores de all?
El calificador establece el resultado SPF para una IP que llega a all; el receptor decide cómo manejar el mensaje.
| Final | Resultado |
|---|---|
-all | Fail: el dominio no autoriza la IP. |
~all | Softfail: el dominio considera la IP probablemente no autorizada. |
?all | Neutral: el dominio no hace ninguna afirmación. |
+all | Pass para todas las IPs, eliminando la restricción que SPF proporcionaría de otro modo. |
¿Cómo se evalúan los registros de ejemplo?
Cada ejemplo a continuación ilustra una política independiente. Las IPs y dominios son ejemplos de documentación, no valores para publicar en tu remitente.
| Registro | Qué autoriza |
|---|---|
v=spf1 mx ip4:192.0.2.10 ip4:198.51.100.0/24 ~all | Los intercambiadores de correo del dominio, una IP y la red indicada; las demás IPs producen softfail. |
v=spf1 a ip4:192.0.2.0/25 ip4:198.51.100.0/26 -all | Los registros de dirección del dominio y dos redes; las demás IPs producen fail. |
v=spf1 -all | Ninguna IP; cualquier intento de usar este dominio produce fail en SPF. |
v=spf1 +all | Todas las IPs, por lo que no impone ninguna restricción de envío. |
v=spf1 redirect=_spf.example.com | Lo que autorice la política en _spf.example.com. |
v=spf1 exists:%{i}._spf.example.com ~all | Las IPs cuyo nombre de consulta expandido devuelve un registro A; las demás IPs producen softfail. |
En el ejemplo de exists, una conexión desde 192.0.2.10 genera el nombre de consulta 192.0.2.10._spf.example.com. Debes operar los registros DNS que hacen funcionar esa política; el patrón no autoriza a un proveedor por sí solo.
¿Cuántas consultas DNS puede usar SPF?
SPF permite diez términos evaluados que consultan DNS en el conjunto de la política y las evaluaciones anidadas. Un undécimo produce permerror, así que añadir otro proveedor puede romper la evaluación en lugar de autorizarlo.
Los términos que se cuentan son include, a, mx, ptr, exists y redirect. Los términos literales ip4, ip6 y all no consumen esa cuota. Se cuentan términos, no simplemente cada paquete DNS. El CNAME de return-path proporciona la autorización SPF de Bird sin añadir un include en el ápex.
¿Por qué puede fallar SPF en correo reenviado?
Un reenviador o lista de correo puede reenviar correo legítimo desde una IP que el dominio envelope-from original no autoriza. Por ejemplo, un buzón de exalumnos que reenvía a un buzón personal cambia el servidor de conexión que ve el receptor final.
Si la dirección envelope-from no cambia, SPF evalúa ese nuevo servidor contra la política del dominio original. Un reenviador puede reescribir la dirección envelope-from usando Sender Rewriting Scheme (SRS) para autenticar su propio dominio. Eso por sí solo no alinea SPF con la dirección From visible original.
Una firma DKIM intacta y alineada aún puede proporcionar un pass de DMARC. La autenticación no establece que un mensaje sea deseado ni garantiza la llegada a la bandeja de entrada.
¿Qué debes publicar para Bird?
Publica el CNAME de return-path proporcionado para tu dominio de envío. Apunta a la infraestructura de rebotes de Bird, que ya proporciona la autorización SPF. No necesitas un include SPF adicional en tu dominio ápex para enviar a través de Bird.
Mantén sin cambios un registro SPF de ápex existente para otros remitentes. Copia el dns_records del dominio. Verifica capabilities.return_path.status; comprueba capabilities.sending.status para confirmar que todo está listo en todos los requisitos de envío. Ambos campos de estado usan estos valores:
| Estado | Significado y acción |
|---|---|
pending | La verificación no se ha ejecutado o está en curso; espera su resultado. |
verified | Los registros DNS de la capacidad coinciden con los valores esperados. |
warning | Los registros verificados anteriormente ya no coinciden; corrígelos antes de que termine el período de gracia. El envío aún no se ve afectado. |
failed | Un valor DNS es incorrecto; corrígelo. |
temporary_failure | Una consulta DNS falló de forma transitoria; la verificación reintenta automáticamente. |
not_configured | La capacidad no está configurada para este dominio. |
Verifica DKIM, return-path y DMARC antes de enviar. Puedes cambiar el hostname del return-path. Si un valor DNS TXT necesita varias cadenas entrecomilladas, el divisor de registros DNS formatea esas cadenas sin modificar la cuota de consultas de SPF.