01. september 2003 - 16:10Der er
18 kommentarer og 1 løsning
Validering JMail
Jeg har en formular som sender mail fra min hjemmeside til min egen mail-adresse (JMail).
Den fungerer fint hvis man ikke skriver noget i formular-feltet: E-mail: <input type="text" name="email" size="20">
Glemmer man at skrive @ i E-mail-feltet, så får man denne fejlmelding: jmail.SMTPMail error '8000ffff' The message was undeliverable. All servers failed to receive the message Mail.asp, line 65
Mit spørgsmål går på hvordan man udelukker denne fejlmelding. Det ville være fint hvis man ku fortælle klienten, at der er fejl i hans mail-adresse, og at han kunne korrigere og så gøre et nyt forsøg.
Function MailOK(Streng) Dim myReg Set myReg = New RegExp myReg.IgnoreCase = True myReg.Pattern = "^[a-z0-9\.\-\_]+\@[a-z0-9\.\-]+\.[a-z]{2,4}$" MailOK = myReg.Test(Streng) End Function
Function MailOK(Streng) Dim myReg Set myReg = New RegExp myReg.IgnoreCase = True myReg.Pattern = "^[a-z0-9\.\-\_]+\@[a-z0-9\.\-]+\.[a-z]{2,4}$" MailOK = myReg.Test(Streng) End Function
validEmail=true 'teksten må ikke være tom if trim(email)="" then validEmail=false
' lav en simpel kontrol på email.adressen else ' abehalen skal være der if not cbool(instr(email,"@")) then validEmail=False end if ' ihvert fald et punktum skal kunne findes if not cbool(instr(email,".")) then validEmail = False end if end if end if
<% 'funktion til validering af email adresse function ValidEmail(Email) ' som udgangspunkt er emailadressen go nok validEmail=true
'teksten må ikke være tom men skal have en antagelig minimumslængde ' den mindste man kan have er vel c@c.dk ' 6 tegn if len(trim(email)) < 6 then ' returner fejl validEmail=false
' ellers lav en simpel kontrol på email.adressen else ' abehalen skal være der if not cbool(instr(email,"@")) then 'returner fejl validEmail=False end if ' ihvert fald et punktum skal kunne findes if not cbool(instr(email,".")) then 'returner fejl validEmail = False end if end if end function
' tjekker om vi er klar til at sende If Request.ServerVariables("Request_Method") = "POST" Then
'kalder funktionen if validEmail(request.form("email")) then ' så kan vi køre videre Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "192.168.0.2" JMail.SenderName = Request.Form("navn") JMail.Sender = Request.Form("email") JMail.AddRecipientEx "min@e-mail.dk", "Fra hjemmesiden" JMail.Subject = "Fra hjemmesiden" JMail.Body = Request.Form("besked") JMail.Sender = Request.Form("email") JMail.Execute JMail.Close Set JMail = Nothing Response.Redirect("Tak.asp") else Response.write("Fejl.asp") End If
vbcoder > takker, ja det er "noget i den retning" :) Jeg har pastet min kode øverst, ville være skønt hvis du ku korrigere og tilføje, noget som virker :)
sådan der. Der manglede bare start og slut asp tegn rundt om funktionen. Funktionen skal bare være i toppen af siden et eller andet sted. Siden burde virke som den er nu.
<% Function MailOK(Streng) Dim myReg Set myReg = New RegExp myReg.IgnoreCase = True myReg.Pattern = "^[a-z0-9\.\-\_]+\@[a-z0-9\.\-]+\.[a-z]{2,4}$" MailOK = myReg.Test(Streng) End Function %>
<% Function MailOK(Streng) Dim myReg Set myReg = New RegExp myReg.IgnoreCase = True myReg.Pattern = "^[a-z0-9\.\-\_]+\@[a-z0-9\.\-]+\.[a-z]{2,4}$" MailOK = myReg.Test(Streng) End Function %>
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.