¿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:
- Usuario no existe: 550 Usuario no existe
- Dominio no existe: 550 Dominio no encontrado
- Rechazado por política: 550 Spam bloqueado
Rebotes Suaves
Fallos temporales:
- Buzón lleno: 452 Almacenamiento de sistema insuficiente
- Servidor temporalmente no disponible: 421 Servicio no disponible
- Mensaje demasiado grande: 552 Tamaño de mensaje excede límite
Rebotes de Bloqueo
Problemas de capacidad de entrega:
- IP en lista negra: 554 Servicio no disponible; IP del remitente bloqueada
- Contenido filtrado como spam: 550 Puntuación de spam demasiado alta
- Limitación de velocidad: 450 Demasiados correos
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]
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 Rebote | Evaluación | Acción |
|---|---|---|
| < 2% | Saludable | Continúa monitoreando |
| 2-5% | Preocupante | Audita calidad de lista de correo |
| 5-10% | Pobre | Limpieza inmediata de lista necesaria |
| > 10% | Crítico | Capacidad 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:
- Cosechar direcciones válidas
- Entregar spam disfrazado de rebotes
- Hacer phishing de credenciales vía informes de entrega falsos
- Comprueba que rebote proviene de servidor MX
- Verifica rebote es para correo que realmente enviaste
- Analiza encabezados de estado de entrega cuidadosamente
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 DMARCEscenario 2: Rebotes No Recibidos
Causa: Dirección de rebote mal configurada o no existe Comprueba: Registros MX para dominio de rebote, buzón existeEscenario 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 receptorEscenario 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 rebotePrueba 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.