Dirección de Rebote

Email y Seguridad
La dirección de retorno usada para informes de no entrega (rebotes) cuando el correo no se puede entregar.
← Volver al Glosario

¿Qué es una Dirección de Rebote?

Una dirección de rebote, también llamada ruta de retorno o remitente de envolvente, es la dirección de correo electrónico que recibe informes de no entrega (NDR) cuando un correo no se puede entregar. Esta dirección es separada de la dirección "De" visible al destinatario y se usa exclusivamente para notificaciones de entrega automatizadas.

Cómo Funcionan las Direcciones de Rebote

La transmisión de correo usa dos conjuntos de direcciones:

From del Encabezado (visible al destinatario):
From: John Doe <[email protected]>
From del Envolvente (nivel SMTP, usado para rebotes):
MAIL FROM: <[email protected]>

Cuando falla la entrega, el servidor receptor envía el rebote al remitente de envolvente, no a la dirección From del encabezado.

Ejemplo de Conversación SMTP

Client: MAIL FROM: <[email protected]>

Server: 250 OK

Client: RCPT TO: <[email protected]>

Server: 550 No such user here

Client: QUIT

# Later, server sends bounce to [email protected]

Tipos de Rebotes de Correo

Rebotes Duros

Fallos de entrega permanentes:

Acción: Elimina dirección de lista de correo inmediatamente.

Rebotes Suaves

Fallos temporales:

Acción: Reintenta entrega, elimina después de múltiples rebotes suaves.

Rebotes de Bloqueo

Problemas de capacidad de entrega:

Acción: Investiga reputación de remitente y autenticación.

Configuración de Dirección de Rebote

Establecer Ruta de Retorno en Encabezados de Correo

PHP (función mail):
$to = "[email protected]";

$subject = "Test Email";

$message = "Email body";

$headers = "From: [email protected]\r\n";

$headers .= "Return-Path: [email protected]\r\n";

mail($to, $subject, $message, $headers, "-f [email protected]");

PHPMailer:
$mail = new PHPMailer();

$mail->From = "[email protected]";

$mail->Sender = "[email protected]"; // Return path

$mail->addAddress("[email protected]");

$mail->Subject = "Test Email";

$mail->send();

Postfix (SMTP):
# /etc/postfix/main.cf

sender_canonical_maps = hash:/etc/postfix/sender_canonical

# /etc/postfix/sender_canonical

@example.com [email protected]

# Apply changes

postmap /etc/postfix/sender_canonical

systemctl reload postfix

Servicios Dedicados de Gestión de Rebotes

La mayoría de proveedores de servicios de correo ofrecen gestión de rebotes:

Amazon SES:
{

"Message": {

"Subject": "Test",

"From": "[email protected]",

"ReturnPath": "[email protected]"

}

}

SendGrid:
const msg = {

to: '[email protected]',

from: '[email protected]',

replyTo: '[email protected]',

return_path: '[email protected]',

subject: 'Test Email',

text: 'Email body'

};

Convenciones de Nombres de Dirección de Rebote

Enfoque de Subdominio

[email protected]           # General bounces

[email protected] # No-reply emails

[email protected] # Returns/receipts

Específico de Campaña

Rastrear rebotes por campaña:

[email protected]

[email protected]

[email protected]

Ruta de Envolvente de Retorno Variable (VERP)

Codifica destinatario en dirección de rebote:

Sending to: [email protected]

Return path: [email protected]

When bounce arrives at bounces+*, parse to identify failed recipient

Procesamiento de Mensajes de Rebote

Análisis Automatizado de Rebote

Ejemplo en Python:
import email

from email import policy

def parse_bounce(raw_email):

msg = email.message_from_string(raw_email, policy=policy.default)

# Extract bounce type

if "550" in msg.get_payload():

return "hard_bounce"

elif "452" in msg.get_payload():

return "soft_bounce"

# Extract failed recipient

for part in msg.walk():

if part.get_content_type() == "message/delivery-status":

# Parse delivery status

pass

return bounce_info

# Integrate with mailing list to remove hard bounces

Gestión de Rebotes Basada en Webhook

Los proveedores de servicios de correo modernos proporcionan webhooks:

Webhook de SendGrid:
POST /bounce-webhook

{

"email": "[email protected]",

"event": "bounce",

"reason": "550 5.1.1 User unknown",

"type": "blocked",

"status": "5.0.0"

}

Acción: Actualiza base de datos para marcar correo como rebotado.

SPF y Direcciones de Rebote

Las comprobaciones SPF verifican el remitente de envolvente (dirección de rebote), no el encabezado From:

Message:

From: [email protected] (header)

Return-Path: [email protected] (envelope)

SPF Check:

Queries: mail-server.com TXT record (not example.com)

Must include sending IP in mail-server.com's SPF

Configuración de SPF del Dominio de Rebote

bounces.example.com.    IN    TXT    "v=spf1 include:_spf.sendgrid.net ~all"

Asegúrate de que tu subdominio de rebote tenga registros SPF apropiados para tu infraestructura de envío.

Mejores Prácticas de Dirección de Rebote

Usa una Dirección de Rebote Dedicada

Nunca uses tu correo principal para rebotes:

# Bad

Return-Path: [email protected]

# Good

Return-Path: [email protected]

Monitorea Tasas de Rebote

Tasa de ReboteEvaluaciónAcción
< 2%SaludableContinúa monitoreando
2-5%PreocupanteAudita calidad de lista de correo
5-10%PobreLimpieza inmediata de lista necesaria
> 10%CríticoCapacidad de entrega en riesgo

Implementa Procesamiento de Rebote

Automatiza eliminación de rebotes duros:

-- Mark emails with hard bounces

UPDATE mailing_list

SET status = 'bounced', bounce_count = bounce_count + 1

WHERE email IN (SELECT email FROM recent_hard_bounces);

-- Remove after 3 hard bounces

DELETE FROM mailing_list

WHERE bounce_count >= 3;

Separa Rebotes Transaccionales y de Marketing

[email protected]  # Order confirmations, receipts

[email protected] # Newsletters, campaigns

Se esperan diferentes tasas de rebote para cada tipo.

Configura Automatización de Procesamiento de Rebote

Ejemplo de Tarea Cron:
#!/bin/bash

# Process bounces every hour

# Fetch bounces from IMAP

fetchmail -c /etc/fetchmailrc

# Parse and update database

/usr/local/bin/process-bounces.py

# Clean up processed bounces older than 30 days

find /var/mail/bounces -mtime +30 -delete

Backscatter y Seguridad de Rebote

Problema de Backscatter

Cuando tu servidor acepta spam y luego lo rebota, estás enviando a direcciones falsificadas:

1. Spammer sends email with forged From

2. Your server accepts it

3. Your server realizes it's spam/invalid

4. Your server bounces to forged From address

5. Innocent party receives bounce (backscatter)

Solución: Rechaza en tiempo SMTP, no aceptes luego rebotes:
# Postfix: Reject unknown users at SMTP time

smtpd_recipient_restrictions = reject_unauth_destination

local_recipient_maps = hash:/etc/postfix/local_recipients

Falsificación de Rebote

Los atacantes pueden falsificar mensajes de rebote para:

Validación:

Escenarios Comunes de Rebote

Escenario 1: Todos los Correos Rebotan

Causa: Fallo de SPF, IP en lista negra, o reputación de servidor Comprueba: Registros SPF, reputación de IP de remitente, informes DMARC

Escenario 2: Rebotes No Recibidos

Causa: Dirección de rebote mal configurada o no existe Comprueba: Registros MX para dominio de rebote, buzón existe

Escenario 3: Alta Tasa de Rebote Suave

Causa: Servidores receptores sobrecargados, limitación de velocidad, mensajes grandes Comprueba: Velocidad de envío, tamaño de mensaje, errores de servidor receptor

Escenario 4: Bucles de Rebote

Causa: Dirección de rebote dispara respuesta automática, que dispara otro rebote Comprueba: Deshabilita respuestas automáticas en direcciones de rebote

Prueba de Gestión de Rebote

Envía correo de prueba con destinatario inválido:
# Test bounce to invalid address

swaks --to [email protected] \

--from [email protected] \

--server mx.test-domain.com

# Check if bounce arrives at [email protected]

Verifica SPF para dominio de rebote:
dig bounces.example.com TXT

# Should show SPF record with authorized senders

La gestión apropiada de dirección de rebote es crítica para mantener reputación de remitente, higiene de lista y capacidad de entrega.

Pon Este Conocimiento en Práctica

Usa la API de DomScan para comprobar disponibilidad de dominios, estado y mucho más.