Avatar billede netro Nybegynder
12. februar 2005 - 04:30 Der er 10 kommentarer og
2 løsninger

Regler for en email-adresses syntaks

Jeg er i færd med at lave en email-validator, der gerne skulle tjekke ALLE mulige fejl, der måtte være i syntaksen.

Fx.:

Ingen _/-/. før og efter @
Korrekt ext
Ingen _ i domænenavn
Max 128 tegn lang

Jeg kunne godt tænke mig at kende alle reglerne. Har prøvet at Google lidt, men kunne ikke finde noget brugbart. Kan I hjælpe?
Avatar billede olebole Juniormester
12. februar 2005 - 07:15 #1
<ole>

Det er vel lidt som at samle på frimærker. Det er sikkert meget sjovt, men den dybere mening fortaber sig i tågerne  :)

Jeg har set i hundredevis af professionelle e-mail løsninger og aldrig set en, der tjekker for 'ALLE mulige fejl'. På den anden side har det aldrig været et problem.
Hvorfor er det et problem for dig?

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
12. februar 2005 - 08:09 #2
Har du aldrig set en emailadresser med _ eller - eller . før @-et?

Der er groft sagt ingen regler før @-et. En emailadresse som

  "Erik Jacobsen"@etellerandetdomæne.dom

kan sagtens være lovlig. Lyt til Ole, det lader til han har fået det rigtige ben
ud af sengen her til morgen ;)

Eneste virkeligt gode løsning jeg kender: send et link til emailadressen, og
få ejeren til at trykke på det. Så findes adressen.
Avatar billede netro Nybegynder
12. februar 2005 - 13:51 #3
Nej, jeg kan godt følge jer. Den eneste sikre metode er at sende en mail, og det gør jeg da også tit. Men jeg ville nu engang gerne forbedre min validator, så den tjekkede for mest muligt. Jeg har faktisk aldrig set en email med andet end A-Z eller 0-9 ved @, og jeg troede faktisk heller ikke, at der fx. kunne være " i adressen.
Avatar billede arne_v Ekspert
12. februar 2005 - 14:29 #4
Arbejds delingen er helt klar.

Alle mailservere undtagen den der håndterer email for det efter @ kigger kun på
det efter @ og sender emailen videre til den. De kigger slet ikke på hvad der
står foran @.

Den mailserver der håndterer mail domain kigger så på det foran @ og beslutter
for hvad den vil gøre for at aflevere emailen. Hvad den accepterer afhænger af
hvad det er for en mailserver.

punktum og understreg er særdeles almindelige foran @.

Men diverse mere eksotiske adresser er også set.
Avatar billede Slettet bruger
13. februar 2005 - 01:14 #5
Det er også ganske normalt med - og + før @ og _ er da (så vidt jeg husker) også lovligt i et domænenavn.

Jeg mener, at det var på HHS (nu en del af SDU) at jeg havde en emailadresse, der bestod af fornavn.efternavn@domænenavn.dk.

Mange mailservere tillader at bruge udvidelser til sit brugernavn, således at man kan have forskellige adresser til forskellige ting uden at skulle have mere end en brugerkonto. Det fungerer for det meste ved at man laver en adresse som: bruger+udvidelse@domæne eller bruger-udvidelse@domæne
Avatar billede arne_v Ekspert
14. februar 2005 - 14:49 #6
Faktisk kørte HHS i en periode med et yderst avanceret mail adresse system.

Det foran @ blev matchet op mod en CSO server med både . og _. Og var der et
unikt match som blev mailen leveret.

arne.vajhoej@...
arne_vajhoej@...
arne.v@...
arne_v@...

etc. ville alle blive leveret til mig.

I tilfælde af flere mulige match blev der returneret en email til afsender
med de mulige match (angivet med fornavn.efternavn@...).
Avatar billede netro Nybegynder
14. februar 2005 - 17:25 #7
Jeg anede slet ikke, at der var så frie rammer for teksten foran @.
Men nu ved jeg det, og det var egentlig svar nok til, at jeg kan komme videre.

Tak for hjælpen - smid nogle svar.
Avatar billede arne_v Ekspert
14. februar 2005 - 20:12 #8
inkl. mig ?
Avatar billede netro Nybegynder
14. februar 2005 - 20:14 #9
Ja, I kom alle med gode svar, så også dig ;)
Avatar billede erikjacobsen Ekspert
14. februar 2005 - 20:21 #10
Ingen point til mig, tak.
Avatar billede Slettet bruger
14. februar 2005 - 22:51 #11
For lige at være pointene værd, vil jeg så anbefale at dit tjek kræver, at der er et eller andet før @ og at domænenavnet i det mindste ligner et domænenavn, dvs. mindst 1 tegn efterfulgt af punktum og derefter mindst 2 bogstaver - og ja, f.eks er 1.dk et gyldigt (og eksisterende) domæne. Du kan se en lille reklame for noget salatsnask på http://1.dk

Den komplette regexp for det er: .+@.+\..+.

Hvis du vil gøre det striksere, kan du slå efter i DNS om der findes en mailserver, men det er faktisk ikke engang særligt effektivt, der er nemlig nogle top-level domæner, hvor alle udefinerede adresser peger på en server for det firma, der står for salg af domæner under det TLD. Se f.eks http://en_test_for_eksperten.museum/

Så konklusionen er, at den eneste sikre måde at afprøve ægtheden af en emailadresse er at sende en mail med et link indeholdende en kode til adressen. Hvis linket bliver fulgt, virker adressen.
Avatar billede netro Nybegynder
14. februar 2005 - 23:03 #12
Tak. Jeg giver dig helt ret i, at det eneste skudsikre er at sende en bekræftelsesmail, men i visse tilfælde vil jeg ikke gøre dette. Validatoren tager højde for rigtig mange faktorer nu, så jeg tror ikke, at den bliver meget bedre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester