|
| 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>
</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/
| |
|
|