Vad är en studsadress?
En studsadress, även kallad returadress eller envelope-sändare, är den e-postadress som tar emot rapporter om utebliven leverans (NDR) när ett e-postmeddelande inte kan levereras. Adressen skiljer sig från den "From"-adress som mottagaren ser och används enbart för automatiska leveransmeddelanden.
Så fungerar studsadresser
E-postöverföring använder två uppsättningar adresser:
Header From (synlig för mottagaren):From: John Doe <[email protected]>
Envelope From (på SMTP-nivå, används för studsar):
MAIL FROM: <[email protected]>
När leveransen misslyckas skickar den mottagande servern studsen till envelope-sändaren, inte till adressen i header From.
Exempel på SMTP-konversation
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]
Typer av e-poststudsar
Hårda studsar
Permanenta leveransfel:
- Användaren finns inte: 550 No such user
- Domänen finns inte: 550 Domain not found
- Avvisad enligt policy: 550 Spam blocked
Mjuka studsar
Tillfälliga fel:
- Brevlådan är full: 452 Insufficient system storage
- Servern är tillfälligt otillgänglig: 421 Service not available
- Meddelandet är för stort: 552 Message size exceeds limit
Blockeringsstudsar
Leveransproblem:
- IP-adressen är svartlistad: 554 Service unavailable; Sender IP blocked
- Innehållet filtreras som skräppost: 550 Spam score too high
- Hastighetsbegränsning: 450 Too many emails
Konfigurera studsadressen
Ange returadress i e-postrubriker
PHP (mail-funktionen):$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
Tjänster för särskild studshantering
De flesta e-posttjänster erbjuder studshantering:
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'
};
Namngivningskonventioner för studsadresser
Underdomänsmetoden
[email protected] # General bounces
[email protected] # No-reply emails
[email protected] # Returns/receipts
Kampanjspecifika adresser
Spåra studsar per kampanj:
[email protected]
Variabel envelope-returadress (VERP)
Koda mottagaren i studsadressen:
Sending to: [email protected]
Return path: [email protected]
When bounce arrives at bounces+*, parse to identify failed recipient
Behandla studsmeddelanden
Automatisk tolkning av studsar
Python-exempel: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
Studshantering via webhook
Moderna ESP:er tillhandahåller webhookar:
SendGrid-webhook:POST /bounce-webhook
{
"email": "[email protected]",
"event": "bounce",
"reason": "550 5.1.1 User unknown",
"type": "blocked",
"status": "5.0.0"
}
Åtgärd: Uppdatera databasen och markera e-postadressen som studsad.
SPF och studsadresser
SPF kontrollerar envelope-sändaren (studsadressen), inte From-rubriken:
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
SPF-konfiguration för studsdomän
bounces.example.com. IN TXT "v=spf1 include:_spf.sendgrid.net ~all"
Säkerställ att studsunderdomänen har lämpliga SPF-poster för din sändande infrastruktur.
Bästa praxis för studsadresser
Använd en särskild studsadress
Använd aldrig din primära e-postadress för studsar:
# Bad
Return-Path: [email protected]
# Good
Return-Path: [email protected]
Övervaka studsfrekvensen
| Studsfrekvens | Bedömning | Åtgärd |
|---|---|---|
| < 2% | Hälsosam | Fortsätt övervaka |
| 2-5% | Oroande | Granska kvaliteten på e-postlistan |
| 5-10% | Dålig | Rensa listan omedelbart |
| > 10% | Kritisk | Leveransbarheten är hotad |
Inför studshantering
Automatisera borttagning av hårda studsar:
-- 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;
Separera transaktionella och marknadsföringsrelaterade studsar
[email protected] # Order confirmations, receipts
[email protected] # Newsletters, campaigns
Olika studsfrekvenser är förväntade för de olika typerna.
Konfigurera automatiserad studshantering
Exempel på cron-jobb:#!/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 och studsäkerhet
Problemet med backscatter
När din server accepterar skräppost och sedan studsar den skickar du meddelanden till förfalskade adresser:
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)
Lösning: Avvisa meddelandet vid SMTP-tillfället, acceptera det inte för att sedan studsa:
# Postfix: Reject unknown users at SMTP time
smtpd_recipient_restrictions = reject_unauth_destination
local_recipient_maps = hash:/etc/postfix/local_recipients
Förfalskning av studsar
Angripare kan förfalska studsmeddelanden för att:
- Samla in giltiga adresser
- Leverera skräppost som ser ut som studsar
- Fiska efter inloggningsuppgifter genom falska leveransrapporter
- Kontrollera att studsen kommer från MX-servern
- Verifiera att studsen gäller e-post som du faktiskt skickat
- Tolka delivery-status-rubriker noggrant
Vanliga studsscenarier
Scenario 1: Alla e-postmeddelanden studsar
Orsak: SPF-fel, svartlistad IP-adress eller dåligt serveranseende Kontrollera: SPF-poster, avsändarens IP-anseende och DMARC-rapporterScenario 2: Studsar tas inte emot
Orsak: Studsadressen är felkonfigurerad eller finns inte Kontrollera: MX-poster för studsdomänen och att brevlådan finnsScenario 3: Hög andel mjuka studsar
Orsak: Mottagarservrar är överbelastade, hastighetsbegränsning eller stora meddelanden Kontrollera: Sändningshastighet, meddelandestorlek och fel från mottagarservernScenario 4: Studsloopar
Orsak: Studsadressen utlöser ett autosvar som i sin tur utlöser en ny studs Kontrollera: Inaktivera autosvar på studsadresserTesta studshantering
Skicka ett testmeddelande till en ogiltig mottagare:# Test bounce to invalid address
swaks --to [email protected] \
--from [email protected] \
--server mx.test-domain.com
# Check if bounce arrives at [email protected]
Verifiera SPF för studsdomänen:
dig bounces.example.com TXT
# Should show SPF record with authorized senders
Korrekt hantering av studsadresser är avgörande för att upprätthålla avsändarens anseende, rena e-postlistor och god leveransbarhet.