Indirizzo Bounce

Email e Sicurezza
L'indirizzo di ritorno utilizzato per i rapporti di mancato recapito (rimbalzi) quando la posta elettronica non può essere consegnata.
← Torna al Glossario

Cos'è un indirizzo Bounce?

Un indirizzo di rimbalzo, chiamato anche il percorso di ritorno o il mittente di busta, è l'indirizzo e-mail che riceve rapporti non di consegna (NDRs) quando un'email non può essere consegnata. Questo indirizzo è separato dall'indirizzo "Da" visibile ai destinatari ed è utilizzato esclusivamente per le notifiche di consegna automatizzate.

Come Bounce affronta il lavoro

La trasmissione via e-mail utilizza due serie di indirizzi:

Header From (visibile al destinatario):
From: John Doe <john@example.com>
Envelope From (livello SMTP, usato per i rimbalzi):
MAIL FROM: <bounces@example.com>

Quando la consegna fallisce, il server ricevente invia il rimbalzo al mittente della busta, non all'intestazione dall'indirizzo.

Esempio di conversazione SMTP

Client: MAIL FROM: <bounces@example.com>

Server: 250 OK

Client: RCPT TO: <invalid@recipient.com>

Server: 550 No such user here

Client: QUIT

# Later, server sends bounce to bounces@example.com

Tipi di messaggi e-mail

Hard Bounces

Fallimenti di consegna permanenti:

Azione: Rimuovere l'indirizzo dalla mailing list immediatamente.

Soft Bounces

Fallimenti temporanei:

Azione: Recuperare la consegna, rimuovere dopo più rimbalzi morbidi.

Block Bounces

Problemi di consegna:

Action: Indaga la reputazione e l'autenticazione del mittente.

Configurazione Indirizzo Bounce

Impostazione percorso di ritorno in e-mail

PHP (funzione di posta):
$to = "recipient@example.com";

$subject = "Test Email";

$message = "Email body";

$headers = "From: sender@example.com\r\n";

$headers .= "Return-Path: bounces@example.com\r\n";

mail($to, $subject, $message, $headers, "-f bounces@example.com");

PHPMailer
$mail = new PHPMailer();

$mail->From = "sender@example.com";

$mail->Sender = "bounces@example.com"; // Return path

$mail->addAddress("recipient@example.com");

$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 bounces@example.com

# Apply changes

postmap /etc/postfix/sender_canonical

systemctl reload postfix

Servizi dedicati alla gestione dei rimbalzi

La maggior parte dei fornitori di servizi e-mail offrono la gestione del rimbalzo:

Amazon SES.

{

"Message": {

"Subject": "Test",

"From": "sender@example.com",

"ReturnPath": "bounces@example.com"

}

}

♪SendGrid ♪

const msg = {

to: 'recipient@example.com',

from: 'sender@example.com',

replyTo: 'reply@example.com',

return_path: 'bounces@example.com',

subject: 'Test Email',

text: 'Email body'

};

Bounce Indirizzo Naming Conventions

Subdomain Approach

bounces@example.com           # General bounces

no-reply@example.com # No-reply emails

returns@example.com # Returns/receipts

Campaign-Specific

Rimbalzi per campagna:

bounces-newsletter@example.com

bounces-campaign-123@example.com

bounces-transaction@example.com

Variable Envelope Return Path (VERP)

Encode destinatario in indirizzo di rimbalzo:

Sending to: user@recipient.com

Return path: bounces+user=recipient.com@example.com

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

Elaborazione dei messaggi di rimbalzo

Parsing rimbalzante automatizzato

Python Esempio:
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

Webhook-Based Bounce Handling

Gli ESP moderni forniscono webhooks:

Traduzione:

POST /bounce-webhook

{

"email": "recipient@example.com",

"event": "bounce",

"reason": "550 5.1.1 User unknown",

"type": "blocked",

"status": "5.0.0"

}

Azione... Aggiorna database per contrassegnare e-mail come rimbalzato.

Indirizzo SPF e Bounce

SPF controlla il mittente della busta (indirizzo di consegna), non l'intestazione From:

Message:

From: newsletter@example.com (header)

Return-Path: bounces@mail-server.com (envelope)

SPF Check:

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

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

Configurazione di Bounce Domain SPF

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

Assicurarsi che il sottodominio di rimbalzo ha i record SPF appropriati per la vostra infrastruttura di invio.

Bounce Indirizzo Migliori Pratiche

Utilizzare un indirizzo di rimbalzo dedicato

Non usare mai la tua email primaria per i rimbalzi:

# Bad

Return-Path: info@example.com

# Good

Return-Path: bounces@example.com

Monitorare le tariffe di rimbalzo

Tasso di rimbalzoValutazioneAzione
%SaluteContinua il monitoraggio
2-5%Per quanto riguardaAudit qualità dell'elenco email
5-10%PoveroPulizia immediata dell'elenco necessaria
> 10%CriticaLiberabilità a rischio

# Implement Bounce Processing

Rimozione automatica dei rimbalzi duri:

-- 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;

Separato Transactional and Marketing Bounces

transactional-bounces@example.com  # Order confirmations, receipts

marketing-bounces@example.com # Newsletters, campaigns

Sono previsti diversi tassi di rimbalzo per ogni tipo.

Impostare l'automazione di elaborazione del rimbalzo

Cron Job Esempio:
#!/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 e Bounce Security

Backscatter Problem

Quando il server accetta lo spam e poi lo rimbalza, stai inviando ad indirizzi forgiati:

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)

# Solution # Rifiutare al momento SMTP, non accettare poi rimbalzare:

# Postfix: Reject unknown users at SMTP time

smtpd_recipient_restrictions = reject_unauth_destination

local_recipient_maps = hash:/etc/postfix/local_recipients

Bounce Forgery #

Gli aggressori possono falsificare i messaggi di rimbalzo a:

**Validazione *

Scenari comuni di rimbalzo

Scenario 1: Tutte le email rimbalzo

********: guasto SPF, elenco IP o reputazione del server

Check: record SPF, reputazione IP del mittente, rapporti DMARC

Scenario 2: Bounces Not Being Received

Perche'... Indirizzo di rimbalzo mal configurato o non esiste

Check: record MX per il dominio di rimbalzo, casella di posta esiste

Scenario 3: Alto tasso di rimbalzo morbido

****: server sensibili sovraccaricati, limiti di velocità, messaggi di grandi dimensioni

# Controlli # Velocità di invio, dimensione del messaggio, errori del server destinatario

Scenario 4: Bounce Loops

Perche'... L'indirizzo di rimbalzo innesca l'auto-replica, che innesca un altro rimbalzo

# Controlli # Disattivare i risponditori automatici sugli indirizzi di rimbalzo

Testare la gestione dei rimbalzi

Invia email di prova con destinatario non valido:
# Test bounce to invalid address

swaks --to invalid-user@test-domain.com \

--from bounces@example.com \

--server mx.test-domain.com

# Check if bounce arrives at bounces@example.com

Verificare SPF per il dominio rimbalzo**:
dig bounces.example.com TXT

# Should show SPF record with authorized senders

La corretta gestione dell'indirizzo di rimbalzo è fondamentale per mantenere la reputazione del mittente, l'igiene della lista e la consegnabilità.

Metti in Pratica Questa Conoscenza

Usa l'API di DomScan per verificare disponibilità, salute del dominio e altro.