Kādas rakstzīmes ir atļautas e-pasta adresē?

Es nejautāju par pilnīgu e-pasta apstiprināšanu.

Es tikai gribu zināt, kādas ir atļautās rakstzīmes e-pasta adreses lietotāja vārda un servera daļās. Iespējams, tas ir pārāk vienkāršoti, varbūt e-pasta adreses var būt arī citās formās, bet man tas ir vienalga. Es jautāju tikai par šo vienkāršo formu: lietotāja vārds@serveris (piemēram, wild.wezyr@best-server-ever.com) un atļautās rakstzīmes abās daļās.

Risinājums

Skatīt RFC 5322: Interneta ziņojumu formāts un, mazākā mērā, RFC 5321: Vienkāršais pasta pārraides protokols.

Arī RFC 822 attiecas uz e-pasta adresēm, bet tas galvenokārt aplūko to struktūru:

 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

Un, kā parasti, Vikipēdijā ir labs raksts par e-pasta adresēm:

E-pasta adreses vietējā daļa var izmantot jebkuru no šīm ASCII rakstzīmēm:

  • lielos un mazos latīņu burtus no A līdz Z un no a līdz z;
  • ciparus no 0 līdz 9;
  • īpašās rakstzīmes `!#$%&'*+-/=?^_{{|}~````;
  • punkts ., ja tas nav pirmā vai pēdējā rakstzīme, ja vien tas nav pēdējais, un ja tas nav secīgs, ja vien tas nav pēdējais (piemēram, John..Doe@example.com nav atļauts, bet "John..Doe"@example.com ir atļauts);
  • atstarpes un "(),:;@[\] rakstzīmes ir atļautas ar ierobežojumiem (tās ir atļautas tikai citātu virknes iekšpusē, kā aprakstīts tālāk tekstā, turklāt pirms tām jābūt atpakaļsvītriniekam vai divkāršam pēdiņam);
  • komentāri ir atļauti ar iekavām abos vietējās daļas galos; piemēram, john.smith(comment)@example.com un (comment)john.smith@example.com ir līdzvērtīgi john.smith@example.com.

Papildus ASCII rakstzīmēm no 2012. gada var izmantot arī starptautiskās iepriekš minētās U+007F rakstzīmes, kas kodētas kā UTF-8, kā aprakstīts RFC 6532 specifikācijā un izskaidrots Wikipedia. Ņemiet vērā, ka no 2019. gada šie standarti joprojām ir atzīmēti kā "Proposed", bet to ieviešana notiek lēni. Šajā specifikācijā veiktās izmaiņas būtībā pievienoja starptautiskās rakstzīmes kā derīgas burtciparu rakstzīmes (atext), neietekmējot noteikumus par atļautajiem & amp; ierobežotas tādas īpašās rakstzīmes kā !# un @:.

Par apstiprināšanu skatiet Regulārās izteiksmes izmantošana e-pasta adreses apstiprināšanai.

Daļa domēna ir definēta šādi:

Interneta standarti (komentāru pieprasījums) protokoliem nosaka, ka komponentu saimniekvārdu marķējumos drīkst būt tikai ASCII burti no a līdz z (neraugoties uz lielajiem burtiem), cipari no 0 līdz 9 un defise (-). Sākotnējā saimniekvārdu specifikācija RFC 952 noteica, ka etiķetes nedrīkst sākties ar ciparu vai defisi un nedrīkst beigties ar defisi. Tomēr vēlākā specifikācijā (RFC 1123) tika atļauts, ka saimniekvārda etiķetes var sākties ar cipariem. Citi simboli, interpunkcijas zīmes vai tukšās vietas nav atļautas.

Komentāri (18)

Vikipēdijā par to ir labs raksts, un oficiālā specifikācija ir šeit. No Wikipdia:

E-pasta adreses vietējā daļa var izmantot jebkuru no šīm ASCII rakstzīmēm:

  • Lielie un mazie angļu burti (a-z, A-Z).
  • cipari no 0 līdz 9
  • rakstzīmes ! # $ % & ' * + - / = ? ^ _ ` { | } ~
  • Rakstzīme . (punkts, punkts, punkts, punkts), ja tas nav pirmā vai pēdējā rakstzīme un ja tas nav redzams divas vai vairāk reizes pēc kārtas.

Turklāt ir atļautas citātu virknes (piemēram, "John Doe"@example.com), tādējādi atļaujot rakstzīmes, kas citādi būtu aizliegtas, tomēr parastajā praksē tās nav sastopamas. RFC 5321 arī brīdina, ka "saimniekam, kas sagaida, ka saņems pastu, PIENĀCĪGI jāizvairās no tādu pastkastīšu definēšanas, kurās vietējā daļa pieprasa (vai izmanto) quoted-string formu".

Komentāri (3)

Jūs varat sākt ar wikipedia rakstu:

  • Lielie un mazie angļu burti (a-z, A-Z)
  • Cipari no 0 līdz 9
  • Rakstzīmes ! # $ % & amp; ' * + - / = ? ^ _ ` { | } ~
  • Rakstzīme . (punkts, punkts, punkts, punkts), ja tas nav pirmā vai pēdējā rakstzīme un ja tas nav redzams divas vai vairāk reizes pēc kārtas.
Komentāri (0)