/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Efffektiv Javascipt email-evaluering ?
Fra : Jakob Munck


Dato : 29-01-02 10:38

Når jeg udsender nyhedsbreve til mine brugere (ca. 120) har jeg det problem,
at der er fejl i deres email-adresser, og det får programmet der udsender
mailene til at "gå ned". Jeg må derfor evaluere de indtastede emails bedre,
allerede før de sendes til databasen, og det giver mig problemer. Indtil nu
har jeg anvendt følgende Javascript (i uddrag):

-----------------------
var p = this.document.indmeldelse.email.value;
if (p.indexOf("@")==-1||p.indexOf(".")==-1||p == ""||p.indexOf(" ") >= 0)
{
self.window.alert ("Din email er forkert !") ;
return false;
}
---------------------
Det evaluerer om @ og . er der, men der er mange fejl, som dette scipt ikke
fanger. Her er et par eksempler på 2 fejlagtige email-adresser, som
ovenstående script ikke fanger:

hansen@ans/gar.dk

jm@ansgar..dk

Jeg har forsøgt mig uden held med at lave Javascriptet om, så jeg håber
nogen kan hjælpe. Hvordan ændrer jeg ovenstående script, så det også
forhindrer indtastnng af skråstreger / og gentagelser af punktum .. ?

v.h.
Jakob Munck



 
 
Jakob Andersen (29-01-2002)
Kommentar
Fra : Jakob Andersen


Dato : 29-01-02 11:29

"Jakob Munck" <jakob.munck@tdcadsl.dk> wrote in message
news:3c566d00$0$89100$edfadb0f@dspool01.news.tele.dk...
> var p = this.document.indmeldelse.email.value;
> if (p.indexOf("@")==-1||p.indexOf(".")==-1||p == ""||p.indexOf(" ") >=
0)
> {
> self.window.alert ("Din email er forkert !") ;
> return false;
> }
> Jeg har forsøgt mig uden held med at lave Javascriptet om, så jeg håber
> nogen kan hjælpe. Hvordan ændrer jeg ovenstående script, så det også
> forhindrer indtastnng af skråstreger / og gentagelser af punktum .. ?

var p = this.document.indmeldelse.email.value;
if (p.indexOf("@")==-1||p.indexOf(".")==-1||p == ""||p.indexOf(" ") >=
0||p.indexOf("/") >= 0 || p.indexOf("..") >= 0){
self.window.alert ("Din email er forkert !") ;
return false;
}

--
Jakob Andersen
Er du god til ASP og mangler du et job?
Så kontakt mig på jta@advice.dk



Jakob Andersen (29-01-2002)
Kommentar
Fra : Jakob Andersen


Dato : 29-01-02 11:36

"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:a35tme$o3v$1@sunsite.dk...
><SNIP>

Du kan jo også foretage en ekstra evaluering på serveren blot for at
dobbelttjekke.

Hvordan sender du mailen ud, det lyder underligt at programmet går død hvis
der er en invalid emailadresse.

--
Jakob Andersen
Er du god til ASP og mangler du et job?
Så kontakt mig på jta@advice.dk



Jakob Munck (29-01-2002)
Kommentar
Fra : Jakob Munck


Dato : 29-01-02 14:50

Her er den ASP-kode jeg bruger til at sende nyhedsbrevene ud, men det er
vist i en anden gruppe vi skal diskutere hvordan den kan forbedres. I hvert
fald stopper den, og udsender ikke de efterfølgende mails, hvis f.eks. et et
felterne i tabllen med email-adresser er tomt, eller hvis der er
syntaks-fejl i mail-adressen. Og det er MEGET generende.

v.h.
Jakob Munck

Her er asp-koden:


<html>
<head>
<!-- #include file="mailliste.css" -->

<head><body bgcolor="ffffcc">

<table class="ramme" style="border-color : #000000" border="1" align="left"
width="590" cellpadding="0" cellspacing="0">
<tr><td class="sort11">

<%
Response.Buffer = True

strMode = Request.QueryString("mode")

If Request.Form("Send") <> "" Then
'// Her putter vi værdien af de indtastede felter i en variabel
strSender = Request.Form("Afsender")
strSubject = Request.Form("Emne")
strMessage = Request.Form("Besked")
strMailServer = Request.Form("Mailserver")

'// Her åbner vi databasen, og trækker alle email adresse ud i et array
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("../../db/dbtest.mdb")

strSQL = "SELECT email FROM bruger"
Set rs = myConn.Execute(strSQL)
arrEmail = rs.GetRows()
myConn.Close
Set myConn = Nothing

'// Her laver vi et loop igennem vore e-mail array og sender beskeden
til alle de tilmeldte
Select Case Request.Form("MailKomponent")
Case "JMail"
Response.Write "<p><font face=arial size=2><b>Udsender med
JMail</b><br><br>"
Set objMail = Server.CreateObject("JMail.SMTPMail")
objMail.Silent = True
objMail.ServerAddress = strMailserver
objMail.Sender = strSender
objMail.Subject = strSubject
objMail.Body = strMessage
For num = 0 to Ubound(arrEmail,2)
objMail.AddRecipient arrEmail(0, num)
If objMail.Execute Then
Response.Write "<font color=green>" & arrEmail(0, num) & "
(" & num & ") OK</font><br>"
Else
Response.Write "<font color=red>" & arrEmail(0, num) & " ("
& num & ") FEJL</font><br>"
End If
objMail.ClearRecipients
Next
Set objMail = Nothing
Case "ASPMail"
Response.Write "<p><font face=arial size=2><b>Udsender med
ASPMail</b><br><br>"
Set objMail = Server.CreateObject("SMTPsvg.Mailer")
objMail.FromAddress = strSender
objMail.RemoteHost = strMailserver
objMail.Subject = strSubject
objMail.BodyText = strMessage
For num = 0 to Ubound(arrEmail,2)
objMail.AddRecipient "Nyhedsmodtager", arrEmail(0, num)
If objMail.SendMail Then
Response.Write "<font color=green>" & arrEmail(0, num) & "
(" & num & ") OK</font><br>"
Else
Response.Write "<font color=red>" & arrEmail(0, num) & " ("
& num & ") FEJL</font><br>"
End If
objMail.ClearRecipients
Next
Set objMail = Nothing
Case "OCXMail"
Response.Write "<p><font face=arial size=2><b>Udsender med
OCXMail</b><br><br>"
Set objMail = Server.CreateObject("ASPMail.ASPMailCtrl.1")
For num = 0 to Ubound(arrEmail,2)
strResult = objMail.SendMail(strMailserver, arrEmail(0, num),
strSender, strSubject, strMessage)
If strResult = "" Then
Response.Write "<font color=green>" & arrEmail(0, num) & "
(" & num & ") OK</font><br>"
Else
Response.Write "<font color=red>" & arrEmail(0, num) & " ("
& num & ") FEJL</font><br>"
End If
Next
Set objMail = Nothing
End Select
Response.Write "<br><font color=blue><b>Nyhedsbrevet er nu
udsendt!</b></font></font></p>"
Response.End
End If
%>
<html><head>
<title>Send mail</title>
</head>

<body link="#FFFFFF" vlink="#C0C0C0">

<div align="center"><center>

<table border="0" width="600" cellspacing="0" cellpadding="3">
<tr>
<td width="100%" bgcolor="#c0c0c0"><p align="center"><font face="verdana"
size="4" color="#ffffff"><strong>Mailliste</strong></font>
<br><br>
<a href="../get2you.asp?mode=administration" target="_self">Admin.</a>

</td>
</tr>
<tr align="center">
<td width="100%">
<form method="POST" action="send_mail.asp">
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td valign="middle" align="left" colspan="2"><font face="verdana"
size="2"><strong><br>
</strong>Indtast venligst oplysningerne i følgende felter<br>(Server:
mail.tele.dk - Afsender: admin@get2you.dk):<strong><br>
&nbsp; </strong></font></td>
</tr>
<tr>
<td valign="middle" align="left"><div align="right"><p><font face="verdana"
size="2"><strong>Mailserver:</strong></font>
</div>
</td>
<td valign="middle" align="left"><input type="text" name="Mailserver"
size="40"></td>
</tr>
<tr>
<td valign="middle" align="left"><strong><div align="right"><p><font
face="verdana" size="2">Afsender:</font></strong>
</div>
</td>
<td valign="middle" align="left"><input type="text" name="Afsender"
size="40"></td>
</tr>
<tr>
<td valign="middle" align="left"><div align="right"><p><font face="verdana"
size="2"><strong>Emne:</strong></font>
</div>
</td>
<td valign="middle" align="left"><input type="text" name="Emne"
size="40"></td>
</tr>
<tr>
<td valign="top" align="left"><div align="right"><p><font face="verdana"
size="2"><strong>Besked:</strong></font>
</div>
</td>
<td valign="middle" align="left"><textarea rows="20" name="Besked"
cols="55"></textarea></td>
</tr>
<tr>
<td valign="top" align="left">
<p align="right"><font face="verdana" size="2"><strong>Send
med:</strong></font></td>
<td valign="middle" align="left"><font face="arial" size="2"><input
type="radio" value="JMail" checked name="MailKomponent">JMail,
<input type="radio" name="MailKomponent" value="ASPMail">ASPMail, <input
type="radio" name="MailKomponent" value="OCXMail">OCXMail</font></td>
</tr>
<tr>
<td valign="middle" align="left" colspan="2"><br>
<input type="submit" value="Send" name="Send"></td>
</tr>
</table>
</form>
</center>
</td>
</tr>
<tr align="center">
<td width="100%" bgcolor="#c0c0c0">
-
</td>
</tr>
</table>
</div>


</td></tr></table>

</body></html>



Jonas Koch Bentzen (29-01-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 29-01-02 14:23

Jakob Munck skrev:
>
> Når jeg udsender nyhedsbreve til mine brugere (ca. 120) har jeg det
> problem, at der er fejl i deres email-adresser, og det får programmet
> der udsender mailene til at "gå ned".

Dårligt program.

> Jeg må derfor evaluere de
> indtastede emails bedre, allerede før de sendes til databasen

Du bør også gøre det på serversiden - med PHP, hvis det er det, du
bruger. Hvad nu, hvis dine brugeres browsere ikke understøtter
JavaScript?

> Jeg har forsøgt mig uden held med at lave Javascriptet om, så jeg håber
> nogen kan hjælpe.

function gyldigEmailadresse() {
email = document.forms[0].email.value

if (!email.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/)) {
alert("Din emailadresse er ikke gyldig.")
}
}

--
Jonas Koch Bentzen

http://understroem.dk/

Jakob Munck (29-01-2002)
Kommentar
Fra : Jakob Munck


Dato : 29-01-02 14:52

Tak Jonas, men det er vist PHP og jeg bruger ASP.

v.h.
Jakob

"Jonas Koch Bentzen" <ingen.emailadresse@eksempel.dk> wrote in message
news:a367o4$3g2$1@sunsite.dk...
> Jakob Munck skrev:
> >
> > Når jeg udsender nyhedsbreve til mine brugere (ca. 120) har jeg det
> > problem, at der er fejl i deres email-adresser, og det får programmet
> > der udsender mailene til at "gå ned".
>
> Dårligt program.
>
> > Jeg må derfor evaluere de
> > indtastede emails bedre, allerede før de sendes til databasen
>
> Du bør også gøre det på serversiden - med PHP, hvis det er det, du
> bruger. Hvad nu, hvis dine brugeres browsere ikke understøtter
> JavaScript?
>
> > Jeg har forsøgt mig uden held med at lave Javascriptet om, så jeg håber
> > nogen kan hjælpe.
>
> function gyldigEmailadresse() {
> email = document.forms[0].email.value
>
> if
(!email.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/)) {
> alert("Din emailadresse er ikke gyldig.")
> }
> }
>
> --
> Jonas Koch Bentzen
>
> http://understroem.dk/



Jonas Koch Bentzen (29-01-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 29-01-02 14:53

Jakob Munck skrev:

> Tak Jonas, men det er vist PHP og jeg bruger ASP.

Eksemplet, jeg viste dig, var ikke PHP - det var JavaScript. Mit forslag
gik ud på, at du udover JavaScriptet også bruger PHP (eller ASP) til at
tjekke på serversiden.

--
Jonas Koch Bentzen

http://understroem.dk/

Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste