Att SMTP Server - Το πρωτόκολλο SMTP

Η ηλεκτρονική αλληλογραφία υπάρχει με τη μία ή την άλλη μορφή ήδη από τη δεκαετία του 1960. Οι άνθρωποι άφηναν μηνύματα ο ένας στον άλλο χρησιμοποιώντας διάφορες μεθόδους σε κεντρικούς υπολογιστές, αλλά μόλις τον Αύγουστο του 1982, όταν το Ινστιτούτο Επιστημών της Πληροφορίας δημοσίευσε το Πρωτόκολλο Μεταφοράς Απλής Αλληλογραφίας (SMTP, RFC 821), προτάθηκε μια τυποποιημένη μέθοδος για την αποστολή και τη λήψη ηλεκτρονικού ταχυδρομείου.

Το SMTP γρήγορα έγινε δημοφιλές στο ARPANET, αντικαθιστώντας παλαιότερες και πιο περίπλοκες μεθόδους που χρησιμοποιούνταν για τη μεταφορά αλληλογραφίας από τον έναν κεντρικό υπολογιστή στον άλλο, και υποστηρίχθηκε για πρώτη φορά στα τέλη του 1982 από τον πρώιμο Mail Transfer Agent «Sendmail» στο BSD 4.1c.
Από τότε, το πρωτόκολλο έχει αναθεωρηθεί και επεκταθεί με αρκετά τακτική συχνότητα, αλλά η βασική μέθοδος αποστολής μηνυμάτων έχει παραμείνει σε μεγάλο βαθμό αμετάβλητη.

Το πρωτόκολλο είναι ένα πρωτόκολλο βασισμένο σε κείμενο, το οποίο αρχικά δεν υποστήριζε τη μεταφορά δυαδικών δεδομένων. Ωστόσο, το γεγονός ότι βασίζεται σε κείμενο έκανε το πρωτόκολλο εύκολο στην υλοποίηση και τη συντήρηση. Το MIME (Multipurpose Internet Mail Extensions) έγινε δημοφιλές στα τέλη της δεκαετίας του ’80 για την κωδικοποίηση και την αποστολή δυαδικών δεδομένων μέσω SMTP. Σήμερα, το SMTP είναι το κυρίαρχο πρωτόκολλο για την αποστολή και τη λήψη ηλεκτρονικού ταχυδρομείου στο Διαδίκτυο και η καλή γνώση αυτού του πρωτοκόλλου είναι απαραίτητη για κάθε διαχειριστή δικτύου.

Δεδομένου ότι το SMTP βασίζεται σε κείμενο, η εκμάθηση του πρωτοκόλλου είναι σημαντικά ευκολότερη σε σύγκριση με πολλά άλλα, και το μόνο που απαιτείται για την άμεση επικοινωνία με έναν διακομιστή SMTP είναι ένα πρόγραμμα ικανό να στέλνει δεδομένα ASCII μέσω της θύρας 25 του TCP/IP, όπως το Telnet.

Τα μηνύματα αποστέλλονται μέσω SMTP στο πλαίσιο μιας συναλλαγής· δηλαδή, εάν η αποστολή του μηνύματος δεν ολοκληρωθεί πλήρως και χωρίς να προκύψει σφάλμα, το μήνυμα απορρίπτεται. Το RFC 821 περιγράφει μια συναλλαγή ως αποτελούμενη από τρία στάδια: τον καθορισμό ενός αποστολέα, την παροχή ενός ή περισσότερων παραληπτών και, τέλος, την αποστολή του ίδιου του μηνύματος. Ωστόσο, είναι ευκολότερο να σκεφτούμε μια συναλλαγή SMTP ως αποτελούμενη από 5 στάδια:

  • Χειραψία
  • Αποστολή διεύθυνσης απάντησης
  • Αποστολή σε παραλήπτες
  • Αποστολή δεδομένων μηνύματος
  • Τερματισμός συναλλαγής

Χειραψία

Κατά τη σύνδεση με έναν διακομιστή SMTP στη θύρα 25, ο αποστολέας ενός μηνύματος πρέπει να περιμένει έως ότου ο παραλήπτης αποδεχτεί τη σύνδεση και να ταυτοποιηθεί με την ακόλουθη μορφή:

220 [domain] [Πληροφορίες υπηρεσίας]
Παράδειγμα: 220 example.com Έτοιμο για χρήση

Στη συνέχεια, ο αποστολέας πρέπει να ταυτοποιηθεί στον παραλήπτη χρησιμοποιώντας την εντολή HELO.

HELO [domain]
Παράδειγμα: HELO example.com

Οι διακομιστές αλληλογραφίας θα αναμένουν από τον καθένα να πιστοποιήσει την ταυτότητά του χρησιμοποιώντας ένα όνομα τομέα, το οποίο θα μπορούσε να χρησιμοποιηθεί για την επαλήθευση της ταυτότητας του διακομιστή μέσω αναζήτησης εγγραφής MX· ωστόσο, ο διακομιστής λήψης δεν πρέπει να απορρίψει τη σύνδεση σε αυτό το στάδιο, ακόμη και αν η ταυτότητα του αποστολέα δεν μπορεί να επαληθευτεί, και ως εκ τούτου πρέπει να απαντήσει με:

250 [Μήνυμα]
Παράδειγμα: 250 example.com Γεια σου, bob στο example.com

Ο κωδικός απάντησης 250 είναι η γενική απάντηση ‘OK’ που στέλνει ένας διακομιστής SMTP για να υποδείξει ότι η τελευταία ενέργεια ολοκληρώθηκε με επιτυχία.

Διεύθυνση αποστολής απάντησης:

Μόλις οι δύο διακομιστές ολοκληρώσουν τη διαδικασία «handshake», η συναλλαγή SMTP έχει ξεκινήσει και μπορούμε να αρχίσουμε να στέλνουμε εντολές στον διακομιστή. Αν θέλετε να δείτε τις εντολές που υποστηρίζει ο διακομιστής, στείλτε την εντολή HELP και ο διακομιστής SMTP θα απαντήσει με ένα μήνυμα στο οποίο θα αναφέρονται λεπτομερώς οι εντολές που υποστηρίζονται.

Για να στείλουμε ένα μήνυμα σε έναν χρήστη σε αυτόν τον διακομιστή, πρέπει όμως πρώτα να ορίσουμε μια διεύθυνση απάντησης. Η διεύθυνση απάντησης πρέπει να καθοριστεί εκ των προτέρων, ώστε, σε περίπτωση που προκύψουν σφάλματα κατά τη διάρκεια της συναλλαγής SMTP, αυτά να μπορούν να αναφερθούν σε αυτή τη διεύθυνση. Για να το κάνουμε αυτό, χρησιμοποιούμε την εντολή ‘MAIL FROM:’:

ΑΠΟΣΤΟΛΕΑΣ:
Παράδειγμα: MAIL FROM:

Προσέξτε τους χαρακτήρες «μικρότερο από» και «μεγαλύτερο από». Σύμφωνα με το RFC 821, αυτοί οι χαρακτήρες είναι απαραίτητοι για να περιλαμβάνουν την ίδια τη διεύθυνση ηλεκτρονικού ταχυδρομείου. Εάν η διεύθυνση γίνει αποδεκτή, το SMTP θα επιστρέψει την απάντηση «250 OK».

Αποστολή σε παραλήπτες

Αφού ορίσουμε μια διεύθυνση απάντησης, το SMTP θα μας επιτρέψει να προσδιορίσουμε τους παραλήπτες του μηνύματος. Για να το κάνουμε αυτό, χρησιμοποιούμε την εντολή ‘RCPT TO:’:

ΠΡΟΣ:
Παράδειγμα: RCPT ΠΡΟΣ:

Για να ορίσετε πολλούς παραλήπτες, απλώς επαναλάβετε αυτήν την εντολή για κάθε παραλήπτη. Εάν ο παραλήπτης δέχεται μηνύματα για αυτόν τον χρήστη και μπορεί να δεχτεί το μήνυμα αυτή τη στιγμή, θα πρέπει να απαντήσει με την απάντηση 250 OK. Ωστόσο, εάν δεν γίνεται αποδοχή μηνυμάτων για αυτόν τον χρήστη, θα σταλεί απάντηση αποτυχίας 550 ή ο αντίστοιχος κωδικός σφάλματος. Εάν λάβουμε απάντηση 250 OK, μπορούμε να προχωρήσουμε στην αποστολή των δεδομένων του μηνύματος.

Αποστολή δεδομένων μηνύματος

Η αποστολή δεδομένων μέσω SMTP είναι αρκετά απλή, ωστόσο οι μορφές των μηνυμάτων μπορεί να είναι αρκετά περίπλοκες, ειδικά όταν αποστέλλονται συνημμένα δυαδικού τύπου. Για να ξεκινήσουμε την αποστολή δεδομένων, πρέπει να εκδώσουμε την εντολή ‘DATA’, στην οποία ο διακομιστής θα πρέπει να απαντήσει με την ενδιάμεση απάντηση 354. Δηλαδή:

354 Πληκτρολογήστε το μήνυμα, τελειώνοντας με “.” σε ξεχωριστή γραμμή

Το απλούστερο μήνυμα που μπορούμε να στείλουμε είναι ένα μήνυμα απλού κειμένου, το οποίο δεν απαιτεί τη χρήση της μορφής μηνυμάτων MIME πολλαπλών μερών. Όλα τα μηνύματα, είτε είναι απλού κειμένου είτε όχι, ολοκληρώνονται με την αποστολή μιας γραμμής που περιέχει μόνο ένα σημείο. Επίσης, πριν από την αποστολή ενός μηνύματος, μπορείτε να συμπεριλάβετε ορισμένες πληροφορίες κεφαλίδας, όπως «Date», «Subject», «To», «Cc» και «From».

Παράδειγμα:

ΔΕΔΟΜΕΝΑ
354 Πληκτρολογήστε το μήνυμα, τελειώνοντας με “.” σε ξεχωριστή γραμμή
Θέμα: Αυτή είναι η γραμμή θέματος του προγραμματισμένου μηνύματος κειμένου
Και αυτό είναι το κύριο σώμα του μηνύματος σε μορφή απλού κειμένου.

Εάν γίνει αποδεκτό, ο διακομιστής SMTP θα επιστρέψει μια απάντηση 250 OK ή έναν κωδικό σφάλματος, εάν η συναλλαγή απέτυχε ή ήταν ατελής. Σημειώστε το χαρακτήρα τελείας στο τέλος της γραμμής του σώματος του μηνύματος· μόνο όταν εντοπίζεται ένας χαρακτήρας τελείας μόνος του σε μια γραμμή, ο διακομιστής θα σταματήσει να αναμένει δεδομένα. Σε περίπτωση που ο διακομιστής του αποστολέα στέλνει ένα μήνυμα που θα προκαλούσε τον πρόωρο τερματισμό της συνεδρίας δεδομένων, επειδή το μήνυμα περιέχει ένα μόνο χαρακτήρα τελείας σε μια γραμμή, θα πρέπει να προσθέσει έναν επιπλέον χαρακτήρα τελείας στη γραμμή.

Ολοκλήρωση της συναλλαγής

Μέχρι αυτό το σημείο, όλα όσα έχουν σταλεί στον διακομιστή SMTP προορισμού θεωρούνται προσωρινά. Εάν η εντολή ‘QUIT’ δεν σταλεί πριν κλείσει η σύνδεση, ο διακομιστής προορισμού θα διαγράψει απλώς όλα τα δεδομένα μηνυμάτων που έχουν αποθηκευτεί. Αρχικά χρησιμοποιούνταν ως ένας ευγενικός τρόπος για το κλείσιμο μιας σύνδεσης, ενώ σήμερα χρησιμοποιείται συνήθως για να υποδηλώσει την ολοκλήρωση μιας συναλλαγής, με πολλούς διακομιστές αλληλογραφίας να περιμένουν την εντολή QUIT πριν τοποθετήσουν το μήνυμα στην ουρά για να το δρομολογήσει ο Πράκτορας Μεταφοράς Μηνυμάτων (Message Transfer Agent). Μόλις στείλετε την εντολή QUIT, ο διακομιστής προορισμού θα πρέπει να στείλει μια απάντηση 221 για να επιβεβαιώσει ότι η συναλλαγή έχει ολοκληρωθεί και ότι η σύνδεση κλείνει.

Αν μαθαίνετε το πρωτόκολλο SMTP, σας συνιστούμε να διαβάσετε τα RFC 821, 2476 και 2554. Πρέπει να έχετε κατά νου, ειδικά κατά την ανάγνωση του RFC 821, ότι από το 1982 οι διακομιστές ηλεκτρονικού ταχυδρομείου έχουν αλλάξει σημαντικά, εν μέρει ως αντίδραση στην κατάχρηση από τους spammers.

Αυτή η εγγραφή δημοσιεύτηκε στο SMTP Servers. Σελιδοδείκτης στο permalink.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Όλοι γνωρίζουν ότι η ύπαρξη ενός αξιόπιστου διακομιστή SMTP είναι το κλειδί για να παραδίδεται σωστά το ηλεκτρονικό σας ταχυδρομείο. Είναι επίσης γνωστό ότι ΚΑΝΕΙΣ δεν προσφέρει πλέον SMTP χωρίς έλεγχο ταυτότητας ή για ανοικτή αναμετάδοση. ΑΛΛΆ ΜΠΟΡΕΊΤΕ ΑΚΌΜΑ ΝΑ ΑΠΟΚΤΉΣΕΤΕ ΈΝΑΝ ΥΨΗΛΉΣ ΠΟΙΌΤΗΤΑΣ ΔΙΑΚΟΜΙΣΤΉ SMTP ΔΩΡΕΆΝ ΓΙΑ ΤΗ ΧΡΉΣΗ ΣΑΣ!

Κάντε κλικ εδώ για τον ΔΩΡΕΑΝ SMTP SERVER σας