Skip to main content

DSN: Κοινοποίηση κατάστασης παράδοσης για ηλεκτρονικό ταχυδρομείο SMTP

Learning iOS: Create your own app with Objective-C! by Tianyu Liu (Ιούλιος 2025)

Learning iOS: Create your own app with Objective-C! by Tianyu Liu (Ιούλιος 2025)
Anonim

Ακόμη και μόνο μια σύντομη ματιά στο πρωτόκολλο SMTP θα σας προσέξει ότι εκτός από το συνηθισμένο HELO, υπάρχει και το EHLO, το οποίο κάνει το Επεκτάθηκε Ο διακομιστής SMTP διαφημίζει τις δυνατότητές του πέραν του αρχικού προτύπου. Ένα από αυτά είναι το DSN. DSN; Δεν επαρκούν το DNA και το DDT;

Για να υποστηρίξει ότι το ηλεκτρονικό ταχυδρομείο είναι αναξιόπιστο, κάποιος πρέπει να " … τροφοδοτούν καλύτερα τον server τους. έφαγε το ταχυδρομείο μου … "δεν είναι ασυνήθιστο, αλλά δεν υπάρχει λόγος να υποστηρίξουμε αυτές τις υποψίες.

Διανομή μικρό tatus Ν η επικύρωση ήταν γύρω από το RFC 821 (από το 1982). Μόλις ολοκληρωθεί το τμήμα DATA του πρωτοκόλλου SMTP και ο διακομιστής αποδέχεται το μήνυμα ηλεκτρονικού ταχυδρομείου για την παράδοση, είναι υπεύθυνο γι 'αυτό. Αν για οποιονδήποτε λόγο δεν μπορεί να περάσει στον παραλήπτη, πρέπει να το στείλει με ειδοποίηση για το σφάλμα στον αρχικό αποστολέα. Αυτό είχε ως αποτέλεσμα κάποια σκοτεινά μηνύματα ηλεκτρονικού ταχυδρομείου.

Εκτός από αυτό, αυτή η παλιά σύμβαση σήμαινε ότι είτε λάβατε ένα μήνυμα σφάλματος είτε πήρατε τίποτα στην οποία περίπτωση ήξερες τίποτα : το μήνυμα ηλεκτρονικού ταχυδρομείου μπορεί να έχει φτάσει ή να μην έχει. Τα μηνύματα σφάλματος σε πολλές περιπτώσεις ήταν εξίσου χρήσιμα με τα μηνύματα σφάλματος. Με το ηλεκτρονικό ταχυδρομείο όλο και πιο σημαντικό αυτό δεν είναι πλέον ικανοποιητικό (σαν να ήταν πριν).

DSN επεκτάσεις σε SMTP

Το RFC 1891 προτείνει ορισμένες επεκτάσεις στο πρωτόκολλο SMTP που θα πρέπει να οδηγήσουν σε ένα πιο αξιόπιστο και πιο χρήσιμο σύστημα DSN. Πρόκειται για ένα σύνολο επεκτάσεων στις εντολές MAIL και RCPT.

Δεν EHLO, δεν είναι διασκεδαστικό

Πρώτον, πρέπει να βεβαιωθούμε ότι ο διακομιστής υποστηρίζει DSN. Έτσι, πρέπει να του πούμε το EHLO και να ακούσουμε προσεκτικά. Εάν απαντήσει με το DSN κάπου στη λίστα χαρακτηριστικών, μπορούμε να υποθέσουμε ότι θα είναι σε θέση να εξυπηρετήσει τα αιτήματά μας. Αν όχι, τότε όχι: μπορούμε να δοκιμάσουμε έναν άλλο διακομιστή ή απλά να επιστρέψουμε στο ηλεκτρονικό ταχυδρομείο χωρίς DSN. Για παράδειγμα:

220 larose.magnet.at ESMTP Sendmail 8.8.6 / 8.8.6; Κυρ, 24 Αυγ 1997 18:23:22 +0200EHLO localhost250-larose.magnet.at Γεια σας localhost 127.0.0.1, χαρά να σας γνωρίσω250-EXPN250-VERB250-8BITMIME250-SIZE250-DSN250-ONEX250-ETRN250-XUSR250 HELP

Ευτυχώς, μεταξύ άλλων, βρίσκουμε DSN.

Επεκτάσεις αποστολέα DSN

Η επόμενη εντολή είναι συνήθως MAIL FROM. Με το DSN, αυτό δεν είναι διαφορετικό. Υπάρχουν όμως δύο επιπλέον επιλογές που μπορείτε να εκδώσετε: RET και ENVID.

Η επιλογή RET τοποθετήθηκε μάλλον αυθαίρετα στην εντολή MAIL, αλλά ταιριάζει εδώ καθώς και οπουδήποτε αλλού. Ο σκοπός είναι να καθορίσετε πόσο από το αρχικό σας μήνυμα πρέπει να επιστραφεί σε περίπτωση αποτυχίας παράδοσης. Τα έγκυρα επιχειρήματα είναι FULL και HDRS. Ο πρώτος σημαίνει ότι το πλήρες μήνυμα πρέπει να συμπεριληφθεί στο μήνυμα σφάλματος, το HDRS δίνει εντολή στον διακομιστή να επιστρέψει μόνο τις κεφαλίδες του αποτυχημένου μηνύματος. Εάν δεν έχει οριστεί η RET, εξαρτάται από το διακομιστή τι πρέπει να κάνει. Στις περισσότερες περιπτώσεις, η τιμή HDRS θα είναι η προεπιλεγμένη τιμή.

Το ENVID ανήκει πραγματικά στον αποστολέα όπως αυτή ή (μάλλον) ο πελάτης ηλεκτρονικού ταχυδρομείου του θα είναι ο μόνος που κάνει χρήση αυτού αναγνωριστικό φακέλου . Σκοπός του είναι να ενημερώσει τον αποστολέα σχετικά με το ποια ηλεκτρονική αλληλογραφία αντιστοιχεί σε πιθανό μήνυμα σφάλματος. Η μορφή αυτού του αναγνωριστικού βασικά παραμένει στη φαντασία του αποστολέα. Δεν θα χρησιμοποιήσουμε το ENVID στο παράδειγμά μας:

MAIL FROM: [email protected] RET = HDRS250 αποστολέας@example.com … Ο αποστολέας είναι εντάξει

Προφανώς, θέλουμε μόνο να ανακτήσουμε τις κεφαλίδες στο DSN μας.

Επεκτάσεις παραλήπτη DSN

Το RCPT TO: παίρνει το δίκαιο μερίδιο των επεκτάσεων του: NOTIFY και ORCPT.

Το NOTIFY είναι η πραγματική καρδιά του DSN. Λέει στον διακομιστή πότε για να στείλετε μια ειδοποίηση κατάστασης παράδοσης. Η πρώτη δυνατή τιμή ΔΕΝ σημαίνει ότι σε καμία περίπτωση δεν θα πρέπει να επιστραφεί ένα DSN στον αποστολέα. Αυτό δεν ήταν εφικτό χωρίς DSN. Στη συνέχεια, υπάρχει η επιτυχία, η οποία θα σας ειδοποιήσει όταν το ταχυδρομείο σας έχει φθάσει στον προορισμό του. Το FAILURE είναι το αντίστοιχο της SUCCESS: ένα DSN θα φτάσει σε περίπτωση εμφάνισης σφάλματος κατά την παράδοση. Η τελευταία επιλογή είναι DELAY: θα ειδοποιηθείτε εάν υπάρχει μια ασυνήθιστη καθυστέρηση στην παράδοση, αλλά το αποτέλεσμα της πραγματικής παράδοσης (επιτυχία ή αποτυχία) δεν έχει ακόμη αποφασιστεί. ΠΟΤΕ πρέπει να είναι το μόνο επιχείρημα αν καθορίζεται, τα άλλα τρία μπορεί να εμφανίζονται σε μια λίστα, οριοθετημένη με κόμμα. Η ΕΠΙΤΥΧΙΑ και η ΑΔΥΝΑΜΙΑ συνθέτουν μια αρκετά ισχυρή ομάδα μαζί, λέγοντάς σας (σχεδόν) σε κάθε περίπτωση τι συνέβη με την αλληλογραφία σας.

Σκοπός της ORCPT είναι η διατήρηση της πρωτότυπο παραλήπτη ενός μηνύματος ηλεκτρονικού ταχυδρομείου, για παράδειγμα, αν προωθείται σε άλλη διεύθυνση. Το επιχείρημα αυτής της επιλογής είναι η διεύθυνση ηλεκτρονικού ταχυδρομείου του αρχικού παραλήπτη μαζί με τον τύπο διεύθυνσης. Ο τύπος διεύθυνσης έρχεται πρώτα, ακολουθούμενος από ένα ερωτηματικό και τέλος από τη διεύθυνση. Για παράδειγμα:

RCPT ΣΤΗΝ: [email protected] NOTIFY = FAILURE, DELAY ORCPT = rfc822, [email protected]250 [email protected] … Ο παραλήπτης ok (θα βρίσκεται στην ουρά)

Ακολουθούν τα DATA όπως το γνωρίζουμε και τελικά, ελπίζουμε, μια ειδοποίηση σχετικά με την κατάσταση των παραδόσεων που σας ενημερώνει για επιτυχία.

Το DSN λειτουργεί;

Φυσικά, όλη αυτή η ομορφιά και θα λειτουργήσει μόνο εάν οι πράκτορες μεταφοράς ταχυδρομείου από τον αποστολέα στον αποδέκτη υποστηρίζουν το DSN. Κάποια μέρα θα το κάνουν.