Θα πάμε κατευθείαν στη σύντομη απάντηση και θα ασχοληθούμε με τη μακροσκελή εξήγηση στη συνέχεια.

Πολύ απλά-όχι.

Μπορώ να ακούσω τους προγραμματιστές και τους υποστηρικτές του διαβόλου εκεί έξω να αμφισβητούν την ωμή άρνησή μας για την επικύρωση email με regex, προκαλώντας την περαιτέρω ερώτηση, τότε, γιατί υπάρχει καθόλου.

Λοιπόν, δεν πρόκειται να αρνηθούμε ότι μπορεί να είναι ένα χρήσιμο εργαλείο, και σίγουρα είναι ένα έξυπνο μικρό κομμάτι κιτ για να αποτρέψει τους χρήστες από το να προσθέτουν οποιοδήποτε κείμενο σε μια φόρμα ή άλλο εκτελέσιμο μέσο. Κάποια στιγμή, το email regex είχε τον ρόλο του στον τρόπο με τον οποίο συλλέγουμε δεδομένα ηλεκτρονικού ταχυδρομείου.

Αλλά τώρα; Σύμφωνα με την τρέχουσα τεχνολογία και τα πρότυπα;

Εμείς λέμε ότι έχει περάσει η ώρα του.

Αν θέλετε να διασφαλίσετε ότι λαμβάνετε καθαρές διευθύνσεις ηλεκτρονικού ταχυδρομείου που δεν πρόκειται να επηρεάσουν το μάρκετινγκ ηλεκτρονικού ταχυδρομείου σας, τα ποσοστά αναπήδησης, τα αποτελέσματα παραδοσιμότητας και όλα τα πράγματα που ξέρετε ότι χρειάζεστε για να διατηρήσετε τις μετρήσεις σας υψηλές και τις μετατροπές σας, τότε το regex δεν είναι ο σωστός τρόπος.

Πίνακας Περιεχομένων

Τι είναι το regex επικύρωσης email;

Regex είναι η συντομογραφία της κανονικής έκφρασης- είναι ένας όρος που χρησιμοποιείται σε διάφορες γλώσσες κωδικοποίησης. Η Regex, ή κανονικές εκφράσεις, αναφέρεται σε κωδικοποιημένες συμβολοσειρές κειμένου που έχουν σχεδιαστεί για να ταιριάζουν με μοτίβα που βρίσκονται σε άλλες συμβολοσειρές.

Μπορεί να είναι αρκετά χρήσιμα όταν ένας χρήστης πρέπει να ταιριάξει μια σειρά χαρακτήρων με έναν συγκεκριμένο τύπο μοτίβου για να επαληθεύσει ότι οι παρεχόμενες πληροφορίες φαίνονται σωστές. Σκεφτείτε αριθμούς τηλεφώνου, ταχυδρομικούς κώδικες, ημερομηνίες και ναι, το μεγάλο πρόβλημα που μας απασχολεί - διευθύνσεις ηλεκτρονικού ταχυδρομείου.

Με ένα απλό μοτίβο, μια ακριβής συμβολοσειρά μπορεί να αντιστοιχιστεί σε ένα σύνολο κανόνων. Όταν τα απλά μοτίβα γίνονται πιο περίπλοκα, η regex γίνεται λιγότερο αποτελεσματική και είναι πιο πιθανό να δώσει κακά αποτελέσματα.

Ακούγεται καλό μέχρι στιγμής, οπότε ποιο είναι το πρόβλημα με την επικύρωση email με regex;

Όσο έξυπνο εργαλείο κι αν είναι το regex, δεν καλύπτει τους ελέγχους που χρειάζεστε. Ρίξτε μια ματιά σε αυτούς:

[email protected]
[email protected]
[email protected]
[email protected]

Ας υποθέσουμε ότι εντοπίζετε κάποιο από τα παραπάνω ως προσθήκη στη λίστα email σας- θα το επισημάνετε αμέσως (ή θα έπρεπε!). Δεν θα πιστεύατε ότι κάποια από αυτές ήταν έγκυρη καταχώρηση από πραγματικούς ανθρώπους που δείχνουν ενδιαφέρον για το προϊόν και την υπηρεσία σας.

Ωστόσο, η επικύρωση email με Regex θα το έκανε. Θα τα άφηνε όλα να περάσουν.

Γιατί; Επειδή αυτές οι προφανώς ψεύτικες διευθύνσεις εξακολουθούν να ακολουθούν τα μοτίβα που οι κανόνες της έχουν οριστεί για να επιβεβαιώσουν.

Δεν φαίνεται και τόσο έξυπνο τώρα, έτσι δεν είναι;

Είναι πολύ περιοριστικό

Παρά τα προηγούμενα παραδείγματα που μας φαίνονται τόσο προφανώς ψευδή, ορισμένες μορφές ηλεκτρονικού ταχυδρομείου περιλαμβάνουν πολύ περισσότερους ειδικούς χαρακτήρες από όσους έχουμε συνηθίσει να βλέπουμε.

Στην απλούστερη μορφή της, η διεύθυνση ηλεκτρονικού ταχυδρομείου ακολουθεί την ακόλουθη μορφή:

username@domain

Οι διευθύνσεις ηλεκτρονικού ταχυδρομείου κατασκευάζονται σε τρία τμήματα:

  • Το τοπικό μέρος - συνήθως ένα όνομα χρήστη ή ένας ρόλος εργασίας
  • Ο χαρακτήρας @
  • Το domain, συμπεριλαμβανομένου ενός έγκυρου TLD (Top Level Domain)

Αν αυτό ήταν το μόνο που έπρεπε να ψάξει ο κώδικας, τότε ένας τυπικός έλεγχος javascript regex θα απέτρεπε πολλές κακές επαφές από το να καταλήξουν στις λίστες μας.

Συνήθως, οι διευθύνσεις ηλεκτρονικού ταχυδρομείου μας μπορούν να περιλαμβάνουν τους ακόλουθους χαρακτήρες:

  • Ψηφίδες: 0 έως 9
  • Μικρά και κεφαλαία γράμματα: a έως z και A έως Z
  • Πρόσθετοι ειδικοί χαρακτήρες: !#$%&'*+-/=?^_`{|}~
  • Ο χαρακτήρας τελείας [.]: Αλλά όχι ως πρώτος ή τελευταίος χαρακτήρας ή χρησιμοποιείται διαδοχικά.

Αν κάποιος έκανε αίτηση στη λίστα email σας με οποιονδήποτε ή μια σειρά από αυτούς τους ειδικούς χαρακτήρες, οι περισσότεροι από εμάς θα αναρωτιόμασταν αν κάτι δεν πάει καλά, και θα κάναμε λάθος - όλοι επιτρέπονται σύμφωνα με την τρέχουσα σύμβαση.

Η Regex δεν ελέγχει τίποτα άλλο εκτός από τη σύνταξη

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

  • Υπάρχει ο τομέας;
  • Υπάρχει εγγραφή MX που να αποδεικνύει ότι ο τομέας έχει διακομιστή αλληλογραφίας;
  • Έχει η διεύθυνση ηλεκτρονικού ταχυδρομείου έναν λειτουργικό λογαριασμό ηλεκτρονικού ταχυδρομείου;

Οποιαδήποτε από αυτές τις ερωτήσεις που βαθμολογούνται με "όχι", θα πάρει ένα σκληρό "όχι" και από εμάς ως έμποροι. Το Regex δεν ελέγχει τίποτα από αυτά - μόνο ένα ειδικό εργαλείο επικύρωσης email θα βγάλει τέτοιες κόκκινες σημαίες.

Δεν εντοπίζει προσωρινές και αναλώσιμες διευθύνσεις

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

Είναι εύκολο να δημιουργήσετε μια προσωρινή ή αναλώσιμη διεύθυνση ηλεκτρονικού ταχυδρομείου ως εφάπαξ λύση. Αυτές οι διευθύνσεις συχνά εξαφανίζονται μέσα σε 10 ή 15 λεπτά από τη δημιουργία τους, γεγονός που τις καθιστά απίστευτα κατάλληλες για το σκοπό τους.
Η Regex δεν θα ελέγξει για αυτά. Οι προσωρινές και οι διευθύνσεις email μίας χρήσης περνούν όλους τους ελέγχους επικύρωσης της Regex.

Πώς θα ρυθμίσετε ένα javascript regex email;

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

function ValidateEmail(inputText)

{

var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

if(inputText.value.match(mailformat))

{

alert("Αυτή δεν είναι έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου"),

επιστροφή false,

}

}

Το μέρος που κάνει όλη τη βαριά δουλειά είναι το var mailformat γραμμή. Η εκτέλεση και οι χαρακτήρες αυτής της μακράς γραμμής κώδικα καθορίζουν τι επιτρέπεται και τι όχι.

Μπορείτε να εντοπίσετε τα απλά πράγματα: a-z, A-Z, 0-9, και στη συνέχεια τους ειδικούς χαρακτήρες στο πρώτο, τοπικό τμήμα. Το +@ υπαγορεύει στη συνέχεια τον τοπικό διαχωριστή και τον διαχωριστή τομέα. Μετά το @ έχουμε στη συνέχεια μια άλλη σειρά οδηγιών σχετικά με το τι είναι επιτρεπτό για το τμήμα domain.

Αν θέλετε μια πολύ βαθύτερη εικόνα για το τι χρειάζεται για να υλοποιήσετε έναν επικυρωτή regex, τότε πηγαίνετε στο abstract. Έχουν έναν πολύ καλό οδηγό για το τι ακριβώς χρειάζεται και είναι ειδικοί όταν πρόκειται για κάθε είδους προσθήκες και ενσωματώσεις API.

Αν μια δουλειά αξίζει να γίνει, αξίζει να γίνει καλά - γι' αυτό επικυρώστε τους καταλόγους σας με τον καλύτερο δυνατό τρόπο.

Υπάρχει μόνο ένας τρόπος για να βεβαιωθείτε ότι οι λίστες email σας είναι σε άριστη κατάσταση, και αυτός είναι να χρησιμοποιήσετε ένα ειδικό εργαλείο επικύρωσης email, όπως το Bouncer.

Η επικύρωση Regex θα μπορούσε να είναι υπεύθυνη για την εισαγωγή πλαστών διευθύνσεων ηλεκτρονικού ταχυδρομείου στις λίστες ηλεκτρονικού ταχυδρομείου σας, καθώς και για τον αποκλεισμό των έγκυρων διευθύνσεων. Όταν πρόκειται να προσθέσετε μια μέθοδο ελέγχου ταυτότητας στις ηλεκτρονικές φόρμες ή στις μεθόδους συλλογής δεδομένων σας, θα προτείναμε άλλες, πιο ισχυρές μορφές επικύρωσης.

Τελικά, η λειτουργία των λιστών email σας μέσω μιας πλατφόρμας όπως η Bouncer είναι ο καλύτερος τρόπος για να διατηρήσετε τις λίστες σας καθαρές και υγιείς, τα ποσοστά αναπήδησης χαμηλά, την παραδοσιμότητά σας υψηλή και το σκορ αποστολέα σας σε άριστη κατάσταση.

Συχνές ερωτήσεις Regex μηνύματος ηλεκτρονικού ταχυδρομείου

Ποιο είναι ένα απλό regex για την επικύρωση email;

Μια απλή regex (κανονική έκφραση) για την επικύρωση email είναι μια ακολουθία χαρακτήρων που ορίζει ένα μοτίβο αναζήτησης για διευθύνσεις email. Μπορεί να χρησιμοποιηθεί για να ελέγξετε αν μια συμβολοσειρά ταιριάζει με την τυπική μορφή μιας διεύθυνσης ηλεκτρονικού ταχυδρομείου. Ωστόσο, είναι σημαντικό να σημειωθεί ότι μια απλή regex μπορεί να μην πιάνει όλες τις άκυρες διευθύνσεις ηλεκτρονικού ταχυδρομείου και μπορεί να επιτρέπει τη διέλευση ορισμένων μη τυποποιημένων μορφών ηλεκτρονικού ταχυδρομείου.

Πώς βοηθάει το email regex στο φιλτράρισμα των άκυρων διευθύνσεων email;

Το Email regex χρησιμοποιείται για την αντιστοίχιση της συμβολοσειράς εισόδου (της διεύθυνσης email που εισάγει ο χρήστης) με μια συγκεκριμένη μορφή. Εάν η διεύθυνση ηλεκτρονικού ταχυδρομείου δεν ταιριάζει με αυτή τη μορφή, θεωρείται άκυρη. Αυτό μπορεί να βοηθήσει στην αποφυγή τυπογραφικών λαθών, στη διασφάλιση της συνοχής των δεδομένων και στην προστασία από ορισμένους τύπους επιθέσεων έγχυσης.

Τι είναι ένας χαρακτήρας λευκού διαστήματος στο πλαίσιο του email regex;

Ο χαρακτήρας λευκού χώρου στην regex ηλεκτρονικού ταχυδρομείου αναφέρεται σε οποιονδήποτε χαρακτήρα που χρησιμοποιείται για την αναπαράσταση κενών διαστημάτων, όπως τα κενά, τα tabs ή τα διαλείμματα γραμμής. Στο πλαίσιο των διευθύνσεων ηλεκτρονικού ταχυδρομείου, οι χαρακτήρες κενών διαστημάτων συνήθως δεν επιτρέπονται και η παρουσία τους θα καθιστούσε μια διεύθυνση ηλεκτρονικού ταχυδρομείου άκυρη.

Τι είναι ένα σύνθετο regex email;

Μια σύνθετη regex ηλεκτρονικού ταχυδρομείου είναι μια πιο λεπτομερής και ακριβής κανονική έκφραση που χρησιμοποιείται για την επικύρωση ηλεκτρονικού ταχυδρομείου. Μπορεί να λαμβάνει υπόψη διάφορες πτυχές των διευθύνσεων ηλεκτρονικού ταχυδρομείου, όπως ονόματα τομέων, μη λατινικούς χαρακτήρες και ειδικούς κανόνες σχετικά με το πού μπορούν να εμφανίζονται ορισμένοι χαρακτήρες. Παρόλο που παρέχει μια πιο λεπτομερή επικύρωση, μπορεί επίσης να είναι πιο δύσκολο να εφαρμοστεί και να συντηρηθεί.

Πώς χειρίζεται η regex ηλεκτρονικού ταχυδρομείου μη λατινικούς χαρακτήρες και Unicode;

Ο χειρισμός μη λατινικών χαρακτήρων και Unicode σε regex ηλεκτρονικού ταχυδρομείου μπορεί να είναι πολύπλοκος. Ορισμένα συστήματα ηλεκτρονικού ταχυδρομείου επιτρέπουν τον Unicode ή μη λατινικές διευθύνσεις ηλεκτρονικού ταχυδρομείου, αλλά δεν υποστηρίζονται καθολικά. Μια σύνθετη regex ηλεκτρονικού ταχυδρομείου μπορεί να περιλαμβάνει κλάσεις χαρακτήρων για την αντιστοίχιση μη λατινικών χαρακτήρων, αλλά είναι σημαντικό να κατανοήσετε τις συγκεκριμένες απαιτήσεις και τους περιορισμούς του συστήματος ηλεκτρονικού ταχυδρομείου με το οποίο εργάζεστε.

Ποιος είναι ο ρόλος των κλάσεων χαρακτήρων στο email regex;

Οι κλάσεις χαρακτήρων στο email regex ορίζουν ένα σύνολο χαρακτήρων που μπορούν να ταιριάξουν με οποιονδήποτε μεμονωμένο χαρακτήρα στη συμβολοσειρά εισόδου. Για παράδειγμα, η κλάση χαρακτήρων [a-z] ταιριάζει με οποιοδήποτε πεζό αγγλικό γράμμα. Οι κλάσεις χαρακτήρων μπορούν να χρησιμοποιηθούν για τον καθορισμό έγκυρων χαρακτήρων για διαφορετικά μέρη μιας διεύθυνσης ηλεκτρονικού ταχυδρομείου.

Ποιοι είναι οι περιορισμοί του email regex για την επικύρωση email;

Παρόλο που το email regex μπορεί να εντοπίσει πολλά κοινά λάθη σε διευθύνσεις email, δεν είναι μια πλήρης μέθοδος επικύρωσης. Ορισμένες άκυρες διευθύνσεις μπορεί να περάσουν τον έλεγχο regex και ορισμένες έγκυρες διευθύνσεις μπορεί να αποτύχουν, ειδικά αν χρησιμοποιούν λιγότερο συνηθισμένες μορφές ή χαρακτήρες. Για ενδελεχή επικύρωση email, συνιστάται συχνά η χρήση υπηρεσιών επικύρωσης email ή η αποστολή ενός email επιβεβαίωσης στην εισαγόμενη διεύθυνση.

Πηγαίνετε για λεπτομερή επαλήθευση email, πηγαίνετε για Bouncer