Ενότητα 1 · 1.1
Το ταξίδι ενός email
Ενότητα 1: Πώς λειτουργεί το email · Χρόνος ανάγνωσης: 9 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα θα μπορείτε να περιγράψετε βήμα προς βήμα πώς ένα mail φτάνει από τον αποστολέα στον παραλήπτη, και σε κάθε βήμα να αναφέρετε ποιο πρόγραμμα ή ποιος server κάνει τη δουλειά.
Βασικές έννοιες: πρόγραμμα email (MUA), server αποστολής (MSA, submission), mail server (MTA), εγγραφή MX, ουρά αναμονής, παράδοση (MDA), mailbox, ανάκτηση (IMAP/POP3), envelope, κεφαλίδες
Το email είναι ταχυδρομείο, όχι μήνυμα συνομιλίας
Όταν στέλνετε ένα μήνυμα συνομιλίας, περνάει μέσα από μία εταιρεία: η εφαρμογή του αποστολέα και η εφαρμογή του παραλήπτη μιλούν με τους ίδιους servers. Το email λειτουργεί διαφορετικά. Ο αποστολέας και ο παραλήπτης μπορεί να βρίσκονται ο καθένας σε διαφορετικό πάροχο: ο ένας σε μια εταιρεία hosting, ο άλλος στο Gmail, ένας τρίτος στο Microsoft 365 ή στον δικό του εταιρικό server. Παρ' όλα αυτά το mail φτάνει. Αυτό συμβαίνει επειδή όλοι οι mail servers στον κόσμο ακολουθούν τις ίδιες συμφωνίες.
Μπορείτε να παρομοιάσετε το email με το ταχυδρομείο. Γράφετε ένα γράμμα (το μήνυμα), το βάζετε σε έναν φάκελο με μια διεύθυνση (το envelope), το πηγαίνετε στο γραμματοκιβώτιο (τον server αποστολής), η ταχυδρομική εταιρεία βρίσκει πού βρίσκεται η διεύθυνση (η αναζήτηση MX), μεταφέρει το γράμμα στο σωστό κέντρο διαλογής (ο mail server παραλαβής) και εκείνος το τοποθετεί στο γραμματοκιβώτιο του παραλήπτη (το mailbox). Ο παραλήπτης το παραλαμβάνει από εκεί όποτε του βολεύει.
Οι σταθμοί με τη σειρά
Ας υποθέσουμε: η Anna στέλνει mail από το anna@example.com στο jan@example.net. Αυτό συμβαίνει:
| Βήμα | Who | Τι συμβαίνει | Πρωτόκολλο |
|---|---|---|---|
| 1 | Το πρόγραμμα email της Anna (MUA, mail user agent) | Η Anna πατάει Send. Το πρόγραμμα συνδέεται στον server αποστολής του παρόχου της και παραδίδει το mail. | SMTP-submission, θύρα 587 ή 465, με σύνδεση |
| 2 | Server αποστολής του example.com (MSA, mail submission agent) | Ελέγχει ότι η Anna είναι πράγματι η Anna (όνομα χρήστη και κωδικός πρόσβασης), τοποθετεί το mail στην ουρά αναμονής. | |
| 3 | Mail server εξερχομένων (MTA, mail transfer agent) | Ρωτάει το DNS: ποιος server δέχεται mail για το example.net; Αυτές είναι οι εγγραφές MX. | DNS |
| 4 | Εξερχόμενος MTA προς εισερχόμενο MTA | Συνδέεται με τον server από την εγγραφή MX και παραδίδει το mail. | SMTP, θύρα 25 |
| 5 | Server παραλαβής του example.net | Ελέγχει το mail (spam, ιούς, SPF, DKIM, DMARC) και το τοποθετεί στο mailbox του Jan. Αυτό το τελευταίο μέρος ονομάζεται MDA (mail delivery agent). | |
| 6 | Το πρόγραμμα email ή το webmail του Jan | Ανακτά το mail ή το εμφανίζει απευθείας από τον server. | IMAP (θύρα 993) ή POP3 (θύρα 995) |
Σε μικρούς παρόχους, ο MSA, ο MTA και ο MDA είναι συχνά ένα και το ίδιο πρόγραμμα σε έναν server. Σε μεγάλους παρόχους πρόκειται για ξεχωριστά clusters. Για εσάς αυτό έχει μικρή σημασία: πρόκειται για ρόλους, όχι για ξεχωριστές συσκευές.
Προσέξτε τη διαφορά ανάμεσα στο βήμα 1 και το βήμα 4. Και τα δύο χρησιμοποιούν SMTP, το Simple Mail Transfer Protocol (RFC 5321). Όμως στο βήμα 1 συνδέεστε με κωδικό και χρησιμοποιείτε τη θύρα 587 ή 465: αυτό ονομάζεται submission (RFC 6409). Στο βήμα 4 δύο servers επικοινωνούν μεταξύ τους στη θύρα 25, χωρίς σύνδεση: ο server παραλαβής δέχεται mail για τα δικά του domains από οποιονδήποτε. Στο μάθημα 1.4 θα δείτε γιατί υπάρχει αυτός ο διαχωρισμός.
Το βήμα 3 από κοντά: η αναζήτηση MX
Ο server αποστολής δεν γνωρίζει από μόνος του πού παραλαμβάνει το mail του το example.net. Το ρωτάει στο DNS:
example.net. 3600 IN MX 10 mx1.mailprovider.example.
example.net. 3600 IN MX 20 mx2.mailprovider.example.Ο χαμηλότερος αριθμός έχει προτεραιότητα. Ο server δοκιμάζει πρώτα τον mx1, και αν εκείνος δεν απαντήσει, τον mx2. Στη συνέχεια ζητά τη διεύθυνση IP αυτού του ονόματος (εγγραφή A ή AAAA) και συνδέεται.
Δύο ειδικές περιπτώσεις που συναντάτε στην πράξη:
- Καμία εγγραφή MX. Τότε ο αποστολέας δοκιμάζει την εγγραφή A ή AAAA του ίδιου του domain (το "έμμεσο MX" από το RFC 5321, παράγραφος 5.1). Αυτό είναι κατάλοιπο από παλαιότερες εποχές και δεν λειτουργεί αξιόπιστα· κάθε domain που δέχεται mail οφείλει να έχει εγγραφή MX.
- Ένα null MX:
0 .Αυτό σημαίνει: "αυτό το domain δεν δέχεται ποτέ mail" (RFC 7505). Το domainexample.comέχει ένα τέτοιο. Ένας αποστολέας παραιτείται αμέσως και στέλνει πίσω ένα μήνυμα σφάλματος, αντί να συνεχίζει να προσπαθεί επί ημέρες.
Πώς λειτουργούν ακριβώς οι εγγραφές MX και οι προτεραιότητες, θα το διαβάσετε στο μάθημα 4.1 του μαθήματος DNS.
Η ουρά αναμονής: το email επιτρέπεται να αργήσει λίγο
Ένα mail δεν φτάνει πάντα μέσα σε ένα δευτερόλεπτο. Αν ο server παραλαβής δεν απαντήσει, ή πει "δοκιμάστε ξανά αργότερα" (έναν κωδικό που ξεκινά με 4), τότε το mail παραμένει στην ουρά αναμονής του server αποστολής. Εκείνος το ξαναδοκιμάζει αργότερα, με ολοένα και περισσότερο χρόνο ανάμεσα στις προσπάθειες. Το RFC 5321 (παράγραφος 4.5.4.1) συνιστά τουλάχιστον 30 λεπτά ανάμεσα στις προσπάθειες και να εγκαταλείπεται η προσπάθεια μόλις μετά από 4 έως 5 ημέρες. Πολλοί servers στέλνουν μετά από μερικές ώρες μια προειδοποίηση ("delayed", δεν έχει ακόμη παραδοθεί) και μετά από μερικές ημέρες το οριστικό μήνυμα σφάλματος.
Αυτό είναι ένα δυνατό σημείο του email: αν ένας mail server είναι εκτός λειτουργίας για μία ώρα, κανένα mail δεν χάνεται. Είναι επίσης ο λόγος για τον οποίο ένα mail μερικές φορές φτάνει μόνο ώρες αργότερα. Στην ενότητα 6 θα δείτε πώς αναγνωρίζετε μια τέτοια καθυστέρηση.
Envelope και κεφαλίδες: δύο διευθύνσεις
Όπως και στο ταχυδρομείο, ένα mail έχει δύο είδη διευθύνσεων:
- Το envelope. Αυτές είναι οι διευθύνσεις που χρησιμοποιούν οι servers μεταξύ τους στη συνομιλία SMTP:
MAIL FROM(ο αποστολέας για μηνύματα σφάλματος, αργότερα ορατός ως Return-Path) καιRCPT TO(ο παραλήπτης). Οι servers παραδίδουν με βάση το envelope. - Οι κεφαλίδες (headers). Αυτό είναι ό,τι βρίσκεται μέσα στο ίδιο το γράμμα:
From:,To:,Cc:,Subject:,Date:. Το πρόγραμμα email σας τα εμφανίζει.
Συνήθως είναι ίδια, αλλά όχι πάντα. Ένας παραλήπτης BCC βρίσκεται μεν στο envelope, αλλά όχι στις κεφαλίδες· γι' αυτό οι άλλοι δεν τον βλέπουν. Μια υπηρεσία newsletter τοποθετεί τη δική της διεύθυνση ως αποστολέα envelope, ώστε τα μηνύματα σφάλματος να καταλήγουν στην υπηρεσία, ενώ στο From: βρίσκεται η δική σας διεύθυνση. Και ένας απατεώνας μπορεί να βάλει στο From: ό,τι θέλει.
Γιατί αυτό έχει σημασία: το SPF ελέγχει τον αποστολέα envelope, ο χρήστης βλέπει το From:. Γι' αυτό υπάρχει το DMARC, που συνδέει αυτά τα δύο μεταξύ τους (ενότητα 4).
Πού μπορεί να πάει κάτι στραβά
Με αυτή την εικόνα μπορείτε σε κάθε πρόβλημα να ρωτήσετε: σε ποιον σταθμό πάει κάτι στραβά;
- Η αποστολή δεν πετυχαίνει (μήνυμα σφάλματος αμέσως στο πρόγραμμά σας): βήμα 1 ή 2. Σχεδόν πάντα ρυθμίσεις: θύρα, σύνδεση, κωδικός πρόσβασης (ενότητα 2).
- Λαμβάνετε πίσω ένα bounce: βήμα 4 ή 5. Ο server παραλαβής απέρριψε το mail, ή η διεύθυνση δεν υπάρχει (ενότητα 6).
- Το mail φτάνει, αλλά στον φάκελο ανεπιθύμητων: βήμα 5. Ο παραλήπτης δεν εμπιστεύεται το mail (ενότητες 4 και 5).
- Ο παραλήπτης δεν βλέπει τίποτα, και εσείς δεν λαμβάνετε κανένα μήνυμα σφάλματος: το mail βρίσκεται ίσως ακόμη σε μια ουρά αναμονής, ή φιλτραρίστηκε σιωπηλά στον παραλήπτη. Εδώ βοηθούν τα logs του server αποστολής (ενότητα 6).
- Κανένα mail δεν φτάνει για το domain σας: βήμα 3. Οι εγγραφές MX δεν είναι σωστές, για παράδειγμα μετά από μια μετακόμιση (ενότητα 8).
Στην πράξη: έτσι φαίνεται σε ένα πακέτο hosting
Σε ένα πακέτο hosting του WebOké, ένας μόνο server ανά πακέτο εκτελεί όλους τους ρόλους: το πρόγραμμα email σας παραδίδει το mail σε αυτόν τον server (βήμα 1 και 2), ο server το στέλνει προς τα έξω (βήμα 3 και 4) και δέχεται mail για το domain σας (βήμα 5). Στο DirectAdmin μπορείτε με το E-mail Tracking να δείτε ανά μήνυμα αν έχει παραδοθεί. Σε άλλους παρόχους λειτουργεί παρόμοια· εκεί μια τέτοια λειτουργία ονομάζεται για παράδειγμα "παρακολούθηση μηνυμάτων" ή "mail log".
Σύνοψη
- Ένα mail πηγαίνει από το πρόγραμμα email σας (MUA) μέσω του server αποστολής (MSA/MTA) προς τον server παραλαβής (MTA/MDA) και από εκεί στο πρόγραμμα email του παραλήπτη.
- Η αποστολή από το πρόγραμμά σας είναι SMTP-submission με σύνδεση (587/465)· οι servers επικοινωνούν μεταξύ τους με SMTP στη θύρα 25· η ανάκτηση γίνεται με IMAP ή POP3.
- Ο server αποστολής αναζητά τις εγγραφές MX του domain μετά το @. Ένα null MX (
0 .) σημαίνει: αυτό το domain δεν δέχεται mail. - Ένα mail που δεν μπορεί να παραδοθεί αμέσως, παραμένει στην ουρά αναμονής και δοκιμάζεται ξανά επί ημέρες.
- Το envelope (Return-Path) και οι κεφαλίδες (From) είναι δύο διαφορετικοί αποστολείς. Το SPF κοιτάζει τον πρώτο, ο χρήστης τον δεύτερο.
Κουίζ
Άσκηση
Άσκηση Z1.1: Εύρεση του πρώτου mail server. Αναζητήστε τις εγγραφές MX του gmail.com (ή του δικού σας domain). Συμπληρώστε ποιος server δοκιμάζεται πρώτος, με τον αριθμό προτεραιότητάς του, και μία διεύθυνση IP (IPv4 ή IPv6) αυτού του server. Το πρόγραμμα ζητά τα ίδια στοιχεία ζωντανά και τα ελέγχει.
Περαιτέρω ανάγνωση
Τα βήματα σε αυτά τα άρθρα ισχύουν για τους πίνακες ελέγχου του WebOké· σε άλλους παρόχους λειτουργεί παρόμοια.
- Πώς λειτουργεί η αποστολή email (SMTP)
- Εγχειρίδιο DirectAdmin 8.7: IMAP ή POP3: ποια είναι η διαφορά;
- Δωρεάν μάθημα DNS 4.1: Εγγραφές MX και προτεραιότητα
- RFC 5321 (SMTP), παράγραφος 5.1 (MX και έμμεσο MX) και 4.5.4.1 (επανάληψη προσπάθειας)· RFC 7505 (null MX)
