CRM και πλατφόρμες δεδομένωνEmail Marketing & Αυτοματισμός

Πώς να επικυρώσετε μια διεύθυνση email με κανονικές εκφράσεις (Regex). Δείγμα κώδικα HTML5, PHP, C#, Python και Java.

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

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

Τι είναι μια διεύθυνση email;

Μια διεύθυνση email, όπως ορίζεται από τη Μορφή μηνυμάτων Διαδικτύου (RFC 5322), αποτελείται από δύο κύρια μέρη: ένα τοπικό τμήμα και ένα τμήμα τομέα. Το τοπικό μέρος έρχεται πριν από το @ σύμβολο και μετά το τμήμα τομέα. Ακολουθεί ένα παράδειγμα διεύθυνσης ηλεκτρονικού ταχυδρομείου: example@example.com, Όπου example είναι το τοπικό μέρος και example.com είναι το τμήμα τομέα.

  • τοπικός – Το τοπικό τμήμα μιας διεύθυνσης email μπορεί να περιέχει έναν συνδυασμό αλφαριθμητικών χαρακτήρων, τελείες, παύλες, σύμβολα συν και κάτω παύλες. Συνήθως χρησιμοποιείται για την αναγνώριση ενός συγκεκριμένου γραμματοκιβωτίου ή λογαριασμού σε έναν διακομιστή.
  • Domain – Το τμήμα τομέα μιας διεύθυνσης email αποτελείται από το όνομα τομέα και τον τομέα ανώτατου επιπέδου του (TLD). Το όνομα τομέα είναι μια σειρά χαρακτήρων που προσδιορίζει τον διακομιστή που φιλοξενεί τον λογαριασμό email. Το TLD καθορίζει τον τύπο της οντότητας που είναι υπεύθυνη για το όνομα τομέα, όπως έναν κωδικό χώρας (π.χ .uk) ή έναν γενικό τομέα ανώτατου επιπέδου (π.χ .com, .org).

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

Πόσο καιρό μπορεί να είναι μια διεύθυνση email;

Έπρεπε να κάνω ένα σκάψιμο σήμερα για να το βρω, αλλά ξέρατε ποιο είναι το έγκυρο μήκος μιας διεύθυνσης email; Είναι πραγματικά χωρισμένο σε μέρη… Local@Domain.com.

  1. Το τοπικό μπορεί να είναι από 1 έως 64 χαρακτήρες.
  2. Ο τομέας μπορεί να αποτελείται από 1 έως 255 χαρακτήρες.

Αυτό σημαίνει ότι – τεχνικά – θα μπορούσε να είναι μια έγκυρη διεύθυνση email:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Δοκιμάστε να το τοποθετήσετε σε μια επαγγελματική κάρτα! Κατά ειρωνικό τρόπο, τα περισσότερα πεδία διεύθυνσης email περιορίζονται στους 100 χαρακτήρες στον ιστό… κάτι που είναι τεχνικά εσφαλμένο. Ορισμένες από τις άλλες τυπικές εκφράσεις που χρησιμοποιούνται για την επικύρωση διευθύνσεων email αναζητούν επίσης έναν τριψήφιο τομέα ανώτατου επιπέδου, όπως το .com. Ωστόσο, δεν υπάρχει περιορισμός στη διάρκεια του τομείς ανώτατου επιπέδου (π.χ. Martech Zone έχει 4 ψηφία – .ζώνη).

Κανονικές εκφράσεις

RegEx είναι μια τέλεια μέθοδος για τον έλεγχο μιας διεύθυνσης email λόγω της δομής προγραμματισμού της. Οι τυπικές εκφράσεις χρησιμοποιούνται ευρέως σε γλώσσες προγραμματισμού και προγράμματα επεξεργασίας κειμένου και συχνά ενσωματώνονται σε βιβλιοθήκες ή πλαίσια επεξεργασίας κειμένου. Υποστηρίζονται από πολλές γλώσσες προγραμματισμού, όπως Python, Java, C# και JavaScript, μεταξύ άλλων.

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

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

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

Το HTML5 περιλαμβάνει επικύρωση δομής email

Ο ευκολότερος τρόπος για να διασφαλίσετε ότι ένα email είναι έγκυρο σύμφωνα με το πρότυπο είναι χρησιμοποιώντας ένα πεδίο εισαγωγής email HTML5:

<input type='email' name='email' placeholder='name@domain.com' />

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

Regex για μια σωστή διεύθυνση email στην PHP

Λίγοι το συνειδητοποιούν, αλλά η PHP έχει πλέον ενσωματωμένο το πρότυπο RFC λειτουργία επικύρωσης φίλτρου.

if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
    // Valid
}
else {
    // Not Valid
}

Regex για μια σωστή διεύθυνση email σε C#

Εδώ είναι η βασική επικύρωση μιας διεύθυνσης email σε C#

using System;
using System.Text.RegularExpressions;

public class EmailValidator
{
    public static bool IsValidEmail(string email)
    {
        string pattern = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";
        return Regex.IsMatch(email, pattern);
    }
}

Πρακτική χρήση αυτής της μεθόδου:

string email = "example@example.com";
if (EmailValidator.IsValidEmail(email))
{
    Console.WriteLine(email + " is a valid email address.");
}
else
{
    Console.WriteLine(email + " is not a valid email address.");
}

Regex για μια σωστή διεύθυνση email σε Java

Ακολουθεί η βασική επικύρωση μιας διεύθυνσης email σε Java

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidator {
    private static final Pattern VALID_EMAIL_ADDRESS_REGEX = 
        Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);

    public static boolean isValidEmail(String email) {
        Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(email);
        return matcher.find();
    }
}

Πρακτική χρήση αυτής της μεθόδου:

String email = "example@example.com";
if (EmailValidator.isValidEmail(email)) {
    System.out.println(email + " is a valid email address.");
} else {
    System.out.println(email + " is not a valid email address.");
}

Regex για μια σωστή διεύθυνση email στην Python

Ακολουθεί μια βασική επικύρωση μιας διεύθυνσης email στην Python:

import re

def is_valid_email(email):
    pattern = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
    return True if pattern.match(email) else False

Πρακτική χρήση αυτής της μεθόδου:

email = "example@example.com"
if is_valid_email(email):
    print(f"{email} is a valid email address.")
else:
    print(f"{email} is not a valid email address.")

Regex για μια σωστή διεύθυνση email σε JavaScript

Δεν χρειάζεται να έχετε ένα υπερβολικά περίπλοκο πρότυπο για τον έλεγχο μιας δομής διεύθυνσης email. Ακολουθεί ένας απλός τρόπος χρήσης JavaScript.

function validateEmail(email) 
{
    var re = /\\S+@\\S+/;
    return re.test(email);
}

Φυσικά, αυτό δεν ισχύει για το πρότυπο RFC, επομένως μπορεί να θέλετε να επικυρώσετε κάθε τμήμα των δεδομένων για να βεβαιωθείτε ότι είναι έγκυρο. Αυτή η τυπική έκφραση θα συμμορφώνεται με περίπου το 99.9% των διευθύνσεων ηλεκτρονικού ταχυδρομείου εκεί έξω. Δεν είναι πλήρως στάνταρ, αλλά είναι χρήσιμο για σχεδόν οποιοδήποτε έργο.

function validateEmail(email) 
{
  var re = /^(?:[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/;

  return re.test(email);
}

Η πίστωση για ορισμένα από αυτά τα παραδείγματα πηγαίνει σε HTML.form.guide.

Douglas Karr

Douglas Karr είναι ΚΟΑ του OpenINSIGHTS και ο ιδρυτής του Martech Zone. Ο Ντάγκλας έχει βοηθήσει δεκάδες επιτυχημένες νεοφυείς επιχειρήσεις της MarTech, έχει βοηθήσει στη δέουσα επιμέλεια άνω των 5 δισεκατομμυρίων δολαρίων σε εξαγορές και επενδύσεις της Martech και συνεχίζει να βοηθά τις εταιρείες στην εφαρμογή και την αυτοματοποίηση των στρατηγικών πωλήσεων και μάρκετινγκ. Ο Ντάγκλας είναι ένας διεθνώς αναγνωρισμένος ειδικός και ομιλητής στον ψηφιακό μετασχηματισμό και στη MarTech. Ο Ντάγκλας είναι επίσης δημοσιευμένος συγγραφέας ενός οδηγού Dummie και ενός βιβλίου επιχειρηματικής ηγεσίας.

Σχετικά άρθρα

Επιστροφή στην κορυφή κουμπί
Κλεισιμο

Εντοπίστηκε μπλοκ διαφημίσεων

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