Ενότητα 6 · 6.1
Πώς διαβάζετε ένα bounce
Ενότητα 6: Bounces και επίλυση προβλημάτων · Χρόνος ανάγνωσης: 11 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα θα μπορείτε να αναλύετε ένα μήνυμα σφάλματος για μη παραδοθέν mail (ένα bounce): ποιος server έδωσε το σφάλμα, για ποιο address, τι σημαίνει ο κωδικός και αν είναι προσωρινό ή οριστικό.
Βασικές έννοιες: bounce, Mailer-Daemon, delivery status notification (DSN, RFC 3464), Reporting-MTA, Remote-MTA, Final-Recipient, Action (failed, delayed), Status, Diagnostic-Code, Will-Retry-Until, κωδικός απάντησης (RFC 5321), εκτεταμένος κωδικός κατάστασης X.Y.Z (RFC 3463), μήνυμα αναβολής, backscatter
Τι είναι ένα bounce;
Όταν ένας mail server δεν μπορεί να παραδώσει ένα mail, στέλνει ένα μήνυμα πίσω στον αποστολέα. Αυτό ονομάζεται bounce (ή: non-delivery report, NDR). Προέρχεται από έναν αποστολέα όπως Mailer-Daemon@..., MAILER-DAEMON ή Mail Delivery System, με θέμα όπως:
Mail delivery failed: returning message to senderUndelivered Mail Returned to SenderDelivery Status Notification (Failure)Warning: message ... delayed 24 hours(αυτό δεν είναι bounce αλλά μήνυμα αναβολής, βλέπε παρακάτω)
Πολλοί άνθρωποι πετούν αμέσως ένα τέτοιο μήνυμα, ή τρομάζουν από το αγγλικό κείμενο. Κρίμα, γιατί ένα bounce σχεδόν πάντα λέει ακριβώς τι πήγε στραβά. Απλώς χρειάζεται να ξέρετε πού να κοιτάξετε.
Ένα bounce έχει πάντα κενό envelope-αποστολέα (Return-Path: <>). Αυτό γίνεται σκόπιμα: ένα bounce πάνω σε ένα bounce θα μπορούσε διαφορετικά να δημιουργήσει έναν ατελείωτο βρόχο (RFC 5321).
Ποιος απέρριψε το mail;
Ένα mail περνάει από τουλάχιστον δύο servers: αυτόν του δικού σας παρόχου και αυτόν του παραλήπτη. Ένα bounce μπορεί να προκύψει σε δύο περιπτώσεις:
- Ο server παραλαβής απορρίπτει το mail κατά τη διάρκεια της συνομιλίας SMTP (μάθημα 1.2), για παράδειγμα μετά το
RCPT TO(άγνωστο address) ή μετά το περιεχόμενο (spam ή DMARC). Ο δικός σας server λαμβάνει αυτή την απόρριψη και φτιάχνει από αυτήν ένα bounce για εσάς. Το σφάλμα προέρχεται τότε από τον παραλήπτη, το bounce από τον δικό σας server. - Ο δικός σας server τα παρατάει, για παράδειγμα επειδή ο παραλήπτης δεν ήταν προσβάσιμος επί ημέρες, ή επειδή εσείς οι ίδιοι φτάσατε σε ένα όριο.
Η διάκριση είναι σημαντική: στην πρώτη περίπτωση πρέπει να μάθετε τι δεν άρεσε στον παραλήπτη, στη δεύτερη περίπτωση το πρόβλημα βρίσκεται πιο κοντά σε εσάς.
Το αναγνώσιμο μέρος
Στην κορυφή υπάρχει ένα κείμενο για ανθρώπους. Αυτό διαφέρει ανάλογα με το λογισμικό mail, αλλά σχεδόν πάντα περιέχει τα ίδια στοιχεία:
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
pieter.devries@example.net
host mx1.example.net [198.51.100.20]
SMTP error from remote mail server after RCPT TO:<pieter.devries@example.net>:
550 5.1.1 <pieter.devries@example.net>: Recipient address rejected: User unknownΔιαβάστε το ως εξής:
| Κομμάτι | Τι λέει |
|---|---|
permanent error | Οριστικό: ο server δεν ξαναδοκιμάζει |
pieter.devries@example.net | Το address για το οποίο πήγε στραβά (σε περίπτωση πολλών παραληπτών: μόνο αυτό) |
host mx1.example.net [198.51.100.20] | Ο server του παραλήπτη με τον οποίο έγινε η συνομιλία |
SMTP error from remote mail server | Το σφάλμα προήλθε από τον παραλήπτη, όχι από τον δικό σας server |
after RCPT TO | Σε ποια στιγμή της συνομιλίας: εδώ κατά την αναφορά του παραλήπτη |
550 5.1.1 ... User unknown | Ο κωδικός και το κείμενο από τον παραλήπτη: αυτό το address δεν υπάρχει |
Το μέρος για μηχανές: το DSN
Κάτω από το κείμενο υπάρχει συνήθως ένα μέρος για προγράμματα, η delivery status notification (RFC 3464). Αυτό έχει πάντα την ίδια δομή, κάτι που το κάνει εύκολα αναγνώσιμο:
Reporting-MTA: dns; mail.hosting.example
Action: failed
Final-Recipient: rfc822;pieter.devries@example.net
Status: 5.1.1
Remote-MTA: dns; mx1.example.net
Diagnostic-Code: smtp; 550 5.1.1 <pieter.devries@example.net>: Recipient address rejected: User unknown| Πεδίο | Σημασία |
|---|---|
Reporting-MTA | Ο server που έγραψε αυτό το bounce (συνήθως ο δικός σας server αποστολής) |
Final-Recipient | Το address για το οποίο πρόκειται |
Action | failed (απέτυχε, οριστικό), delayed (αναβλήθηκε, γίνεται ακόμη προσπάθεια), μερικές φορές delivered ή relayed |
Status | Ο εκτεταμένος κωδικός κατάστασης, βλέπε παρακάτω |
Remote-MTA | Ο server στην άλλη πλευρά που έδωσε την απάντηση |
Diagnostic-Code | Η κατά λέξη απάντηση αυτού του server: εδώ βρίσκεται ο πραγματικός λόγος |
Will-Retry-Until | Στο delayed: μέχρι πότε ο server θα συνεχίσει να προσπαθεί |
Εντελώς στο κάτω μέρος βρίσκεται το αρχικό mail ή μόνο οι κεφαλίδες του. Εκεί βλέπετε ποιο ήταν το mail, και ποιο address αποστολέα και ποιο Return-Path χρησιμοποιήθηκαν. Αυτό είναι μερικές φορές το κλειδί για τη λύση (βλέπε την περίπτωση DMARC στην άσκηση).
Ανάγνωση των κωδικών
Υπάρχουν δύο είδη κωδικών, και συνήθως εμφανίζονται και οι δύο σε ένα bounce.
Ο κωδικός απάντησης (RFC 5321): τρία ψηφία, όπως 550 ή 451. Το πρώτο ψηφίο είναι το πιο σημαντικό:
| Ξεκινά με | Σημασία | Τι κάνει ο server αποστολής |
|---|---|---|
2 | Επιτυχές | Τίποτα άλλο, το mail έγινε αποδεκτό |
4 | Προσωρινό σφάλμα | Αποθηκεύει το mail και ξαναδοκιμάζει αργότερα |
5 | Οριστικό σφάλμα | Τα παρατάει και στέλνει ένα bounce |
Ο εκτεταμένος κωδικός κατάστασης (RFC 3463): τρεις αριθμοί με τελείες, όπως 5.1.1 ή 4.7.500. Ο πρώτος αριθμός είναι ξανά 2, 4 ή 5. Ο δεύτερος αριθμός λέει πού βρίσκεται το πρόβλημα:
| Δεύτερος αριθμός | Θέμα | Παραδείγματα |
|---|---|---|
X.1 | Address | 5.1.1 το address δεν υπάρχει, 5.1.2 το domain δεν υπάρχει |
X.2 | Mailbox | 5.2.2 / 4.2.2 το mailbox είναι γεμάτο, 5.2.1 το mailbox έχει απενεργοποιηθεί |
X.3 | Σύστημα mail | 5.3.4 πολύ μεγάλο μήνυμα |
X.4 | Δίκτυο και διαδρομή | 4.4.1 καμία απάντηση, 4.4.7 πολύς χρόνος στην ουρά, 5.4.4 καμία διαδρομή |
X.5 | Πρωτόκολλο | 5.5.1 μη έγκυρη εντολή |
X.6 | Περιεχόμενο | 5.6.0 πρόβλημα με το περιεχόμενο ή την κωδικοποίηση |
X.7 | Ασφάλεια και πολιτική | 5.7.1 απορρίφθηκε, 5.7.26 μη πιστοποιημένο (Gmail), 5.7.509 DMARC (Microsoft) |
Ο τρίτος αριθμός είναι ο ακριβής λόγος. Μεγάλοι πάροχοι χρησιμοποιούν για αυτό δικούς τους αριθμούς, όπως η Gmail με 5.7.25 έως 5.7.30 και η Microsoft με 4.7.500 και 5.7.509. Αυτοί αναφέρονται στη δική τους τεκμηρίωση (μάθημα 6.2).
Πρακτικός κανόνας: ο κωδικός με 5 στην αρχή και 7 στη μέση (5.7.x) είναι σχεδόν πάντα ζήτημα πολιτικής: authentication, φήμη ή spam. Εκεί η επανάληψη αποστολής δεν βοηθά· πρέπει να αλλάξει κάτι.
Αναβολή δεν σημαίνει ακόμη αποτυχία
Σε περίπτωση προσωρινού σφάλματος (4xx) ο server σας αποθηκεύει το mail και ξαναδοκιμάζει. Το RFC 5321 συνιστά να επιμένει τουλάχιστον τέσσερις με πέντε ημέρες, με τουλάχιστον μισή ώρα ανάμεσα στις προσπάθειες. Πολλοί servers στέλνουν μετά από μερικές ώρες ή μετά από μία ημέρα ένα μήνυμα αναβολής:
Action: delayed
Status: 4.7.500
Diagnostic-Code: smtp; 451 4.7.500 Server busy. Please try again later from [203.0.113.25].
Will-Retry-Until: Thu, 12 Nov 2026 08:58:40 +0100Αυτό σημαίνει: μην ξαναστείλετε, ο server το προσπαθεί ακόμη ο ίδιος. Αν το ξαναστείλετε παρ' όλα αυτά, ο παραλήπτης μπορεί σύντομα να το λάβει δύο φορές. Αν τελικά δεν τα καταφέρει πριν το Will-Retry-Until, τότε θα έρθει εν τέλει ένα πραγματικό bounce, συχνά με 4.4.7 (το μήνυμα έληξε στην ουρά).
Ψεύτικα bounce: backscatter
Λαμβάνετε ξαφνικά δεκάδες bounces για mail που ποτέ δεν στείλατε; Κοιτάξτε τότε στο αρχικό mail στο κάτω μέρος. Αν εκεί υπάρχει αποστολέας του δικού σας domain, αλλά server και κείμενο που δεν αναγνωρίζετε, τότε κάποιος spammer χρησιμοποίησε το δικό σας address ως αποστολέα. Οι παραλήπτες στέλνουν τα bounces τους σε εσάς. Αυτό ονομάζεται backscatter.
Το mailbox σας συνήθως δεν έχει παραβιαστεί (βλέπε μάθημα 3.4 για τη διαφορά). Αυτό που βοηθά: μια πολιτική DMARC που γίνεται βήμα προς βήμα αυστηρότερη (μάθημα 4.4), ώστε οι παραλήπτες να απορρίπτουν πλαστογραφημένο mail πριν δημιουργηθεί bounce. Ελέγξτε πάντως στα απεσταλμένα mail σας και στον πάροχό σας αν πράγματι δεν έχει σταλεί τίποτα από το mailbox σας.
Στην πράξη: έτσι μοιάζει
Στο WebOké βλέπετε εκτός από το bounce και στο E-mail Tracking στο DirectAdmin τι έκανε ο server με ένα μήνυμα: Delivered, Deferred ή Fail, μαζί με την απάντηση του server παραλαβής. Άλλα panels έχουν συχνά παρόμοιο mail log ή «ίχνος μηνύματος»· στο Microsoft 365 ονομάζεται για παράδειγμα message tracing. Είναι χρήσιμο να κοιτάξετε πρώτα εκεί αν δεν έχετε λάβει bounce, ή αν κάποιος λέει ότι το mail σας δεν έφτασε.
Σύνοψη
- Ένα bounce προέρχεται από τον Mailer-Daemon και έχει κενό Return-Path. Διαβάστε το, συνήθως λέει ακριβώς τι πήγε στραβά.
- Κοιτάξτε πρώτα ποιος έδωσε το σφάλμα (
SMTP error from remote mail server= ο παραλήπτης) και για ποιο address. - Στο μέρος για μηχανές:
Action,Status,Remote-MTAκαι κυρίωςDiagnostic-Code. - Πρώτο ψηφίο: 4 = προσωρινό, 5 = οριστικό. Δεύτερος αριθμός: 1 address, 2 mailbox, 3 σύστημα, 4 διαδρομή, 5 πρωτόκολλο, 6 περιεχόμενο, 7 πολιτική.
- Μήνυμα αναβολής (
delayed): μην ξαναστείλετε. Bounces για mail που δεν στείλατε: backscatter.
Κουίζ
Άσκηση
Άσκηση Z6.1: Ανάλυση τριών bounce. Λαμβάνετε τρία παραδειγματικά bounces (bounce-1.txt, bounce-2.txt και bounce-3.txt). Συμπληρώστε για κάθε bounce: το address για το οποίο πήγε στραβά, τον server που έδωσε το σφάλμα (Remote-MTA), τον κωδικό κατάστασης, αν είναι προσωρινό ή οριστικό, και τι πρέπει να κάνει ο αποστολέας (επιλέξτε από μια λίστα). Το πρόγραμμα ελέγχει με σταθερό κλειδί και δίνει εξήγηση για κάθε πεδίο.
Για περαιτέρω μελέτη
Τα βήματα σε αυτά τα άρθρα ισχύουν για τα panels του WebOké· σε άλλους παρόχους η διαδικασία είναι παρόμοια.
- Mail delivery failed: πώς να διαβάσετε το μήνυμα σφάλματος και τι σημαίνουν οι κωδικοί
- Μήνυμα σφάλματος: 550 5.5.0 Requested action not taken: mailbox unavailable
- Έλεγχος παράδοσης email με το Email Tracking στο DirectAdmin
- Εγχειρίδιο DirectAdmin 9.3: E-mail Tracking: πού πήγε το μήνυμά μου;
- RFC 3464 (δομή ενός DSN), RFC 3463 (εκτεταμένοι κωδικοί κατάστασης) και RFC 5321 παράγραφος 4.2 (κωδικοί απάντησης) και 4.5.4.1 (επανάληψη προσπάθειας)
