Δεν ζητάω πλήρη επικύρωση email.
Θέλω απλώς να μάθω ποιοι είναι οι επιτρεπόμενοι χαρακτήρες στα τμήματα user-name
και server
της διεύθυνσης ηλεκτρονικού ταχυδρομείου. Αυτό μπορεί να είναι υπεραπλουστευμένο, ίσως οι διευθύνσεις ηλεκτρονικού ταχυδρομείου μπορούν να πάρουν άλλες μορφές, αλλά δεν με νοιάζει. Ρωτάω μόνο για αυτή την απλή μορφή: (π.χ. [email protected]) και τους επιτρεπόμενους χαρακτήρες και στα δύο μέρη.
Βλέπε RFC 5322: Μορφή μηνυμάτων Διαδικτύου και, σε μικρότερο βαθμό, RFC 5321: Πρωτόκολλο μεταφοράς απλής αλληλογραφίας.
Το RFC 822 καλύπτει επίσης τις διευθύνσεις ηλεκτρονικού ταχυδρομείου, αλλά ασχολείται κυρίως με τη δομή του:
addr-spec = local-part "@" domain ; global address
local-part = word *("." word) ; uninterpreted
; case-preserved
domain = sub-domain *("." sub-domain)
sub-domain = domain-ref / domain-literal
domain-ref = atom ; symbolic reference
Και ως συνήθως, η Wikipedia έχει ένα αξιοπρεπές άρθρο για τις διευθύνσεις ηλεκτρονικού ταχυδρομείου:
Το τοπικό μέρος της διεύθυνσης ηλεκτρονικού ταχυδρομείου μπορεί να χρησιμοποιεί οποιονδήποτε από αυτούς τους χαρακτήρες ASCII: >,
- κεφαλαία και πεζά λατινικά γράμματα
A
έωςZ
καιa
έωςz
,- τα ψηφία
0
έως9
,- ειδικοί χαρακτήρες
!#$%&'*+-/=?^_`{|}~
,- τελεία
.
, υπό την προϋπόθεση ότι δεν είναι ο πρώτος ή ο τελευταίος χαρακτήρας εκτός αν είναι σε εισαγωγικά, και υπό την προϋπόθεση επίσης ότι δεν εμφανίζεται διαδοχικά εκτός αν είναι σε εισαγωγικά (π.χ.[email protected]
δεν επιτρέπεται αλλά"John..Doe"@example.com
επιτρέπεται),- οι χαρακτήρες space και
"(),:;<>@[\]
επιτρέπονται με περιορισμούς (επιτρέπονται μόνο μέσα σε μια συμβολοσειρά σε εισαγωγικά, όπως περιγράφεται στην παράγραφο παρακάτω, και επιπλέον πρέπει να προηγείται backslash ή double-quote),- τα σχόλια επιτρέπονται με παρενθέσεις σε κάθε άκρο του τοπικού μέρους- π.χ.
john.smith(comment)@example.com
και(comment)[email protected]
είναι και τα δύο ισοδύναμα με[email protected]
.
Εκτός από τους χαρακτήρες ASCII, από το 2012 μπορείτε να χρησιμοποιήσετε τους διεθνείς χαρακτήρες παραπάνω U+007F
, κωδικοποιημένους ως UTF-8 όπως περιγράφεται στο RFC 6532 spec και εξηγείται στη Wikipedia. Σημειώστε ότι από το 2019, αυτά τα πρότυπα εξακολουθούν να χαρακτηρίζονται ως προτεινόμενα, αλλά αναπτύσσονται αργά. Οι αλλαγές σε αυτό το spec ουσιαστικά προσέθεσαν διεθνείς χαρακτήρες ως έγκυρους αλφαριθμητικούς χαρακτήρες (atext) χωρίς να επηρεάζουν τους κανόνες για τους επιτρεπόμενους &- περιορισμένους ειδικούς χαρακτήρες όπως !#
και @:
.
Για την επικύρωση, ανατρέξτε στην ενότητα Χρήση κανονικής έκφρασης για την επικύρωση μιας διεύθυνσης ηλεκτρονικού ταχυδρομείου.
Το μέρος domain
ορίζεται ως εξής:
(Request for Comments) για τα πρωτόκολλα επιτάσσουν ότι οι ετικέτες των συστατικών ονομάτων κεντρικών υπολογιστών μπορούν να περιέχουν μόνο τα γράμματα ASCII a
έως z
(χωρίς να λαμβάνεται υπόψη η πεζότητα), τα ψηφία 0
έως 9
και την παύλα (-
). Η αρχική προδιαγραφή των ονομάτων κεντρικών υπολογιστών στο RFC 952, επέβαλε ότι οι ετικέτες δεν μπορούσαν να αρχίζουν με ψηφίο ή με παύλα και δεν έπρεπε να τελειώνουν με παύλα. Ωστόσο, μια μεταγενέστερη προδιαγραφή (RFC 1123) επέτρεψε στις ετικέτες των ονομάτων υποδοχής να αρχίζουν με ψηφία. Δεν επιτρέπονται άλλα σύμβολα, χαρακτήρες στίξης ή κενά διαστήματα.
Η Wikipedia έχει ένα καλό άρθρο σχετικά με αυτό, και το επίσημο spec είναι εδώ. Από τη Wikipdia:
Το τοπικό μέρος της διεύθυνσης ηλεκτρονικού ταχυδρομείου μπορεί να χρησιμοποιεί οποιονδήποτε από αυτούς τους χαρακτήρες ASCII:
- Αγγλικά κεφαλαία και πεζά γράμματα (a-z, A-Z)
- ψηφία από 0 έως 9
- Χαρακτήρες ! # $ % & ' * + - / = ? ^ _ ` { | } ~
- Χαρακτήρας . (τελεία, τελεία, τελεία) υπό την προϋπόθεση ότι δεν είναι ο πρώτος ή ο τελευταίος χαρακτήρας και υπό την προϋπόθεση επίσης ότι δεν εμφανίζεται δύο ή περισσότερες φορές διαδοχικά.
Επιπρόσθετα, επιτρέπονται οι συμβολοσειρές σε εισαγωγικά (π.χ.: "John Doe"@example.com), επιτρέποντας έτσι χαρακτήρες που διαφορετικά θα ήταν απαγορευμένοι, ωστόσο δεν εμφανίζονται στην κοινή πρακτική. Το RFC 5321 προειδοποιεί επίσης ότι "ένας κεντρικός υπολογιστής που αναμένει να λαμβάνει αλληλογραφία ΘΑ ΠΡΕΠΕΙ να αποφεύγει τον ορισμό γραμματοκιβωτίων όπου το τοπικό μέρος απαιτεί (ή χρησιμοποιεί) τη μορφή Quoted-string".
Μπορείτε να ξεκινήσετε από το άρθρο της wikipedia: