14. maj 2003 - 14:18
Der er
27 kommentarer og 1 løsning
Mail form HASTER!!
Jeg er igang med at lave en hjemmeside hvor der skal være en mail form, som skal være lavet i ASP - Jmail! Formen skal indeholde: Navn Adresse Postnr By Email adresse emne (select boks) besked (tekstfelt) Disse ting skal kunne udfyldes og sendes til en fast emailadresse. Der gives point til den der kan lave hele koden, så det virker!
Annonceindlæg fra Cognizant
Jeg vil gerne have koden til dig Giv mig 15 min...
kimlarsen1978 >> Hvis du mener lave, så lyder det rigtig godt!
kimlarsen1978 >> Hvis du har icq kan du få lov til at se siden den skal være på, så du kan tilpasse den: Mit uin: #127563097
Skal "emne" være i dropdown?
ja tak, der skal være to valg muligheder
Jeg vil også meget gerne have lavet en validering i forbindelse med formen
Kald siden for mail.asp -------------------- <% session("send") = "" if request.queryString("mode")="send" then Set Message = Server.CreateObject("JMail.SMTPMail") Message.ContentTransferEncoding = "8bit" Message.Charset = "ISO-8859-1" Message.Priority = 1 Message.ServerAddress = "SKOLENS POP3" Message.Sender = "eksperten@bokaj.dk" Message.Subject = "Mail fra kontaksiden" Message.Body = "Denne mail er sent fra kontaktiden" & vbCrLf & vbCrLf Message.Body= Message.Body + "******************************" & vbCrLf Message.Body= Message.Body + "Navn: " & request.form("navn") & vbCrLf Message.Body= Message.Body + "Adresse: " & request.form("adresse") & vbCrLf Message.Body= Message.Body + "Postnummer: " & request.form("postnr") & vbCrLf Message.Body= Message.Body + "By: " & request.form("by") & vbCrLf Message.Body= Message.Body + "Emne: " & request.form("emne") & vbCrLf Message.Body= Message.Body + "Besked: " & request.form("besked") & vbCrLf Message.Body= Message.Body + "*******************************" Message.AddRecipient "eksperten@bokaj.dk" ' Det er denne adresse der modtager mailen Message.Execute set Message = nothing session("send") = "Mailen er sendt" end if %> <html> <head> </head> <body> <form method="POST" action="mail.asp?mode=send"> <p align="center"><b><font face="Verdana" size="2"><%response.write session("send")%></font></b> <table border="0" width="100%" height="355"> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Navn:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="navn" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Adresse:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="adresse" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Postnummer:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="postnr" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">By:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="by" size="20"></font></td> </tr> <tr> <td width="12%" height="24"><font face="Verdana" size="1">Emne:</font> </td> <td width="88%" height="24"><font face="Verdana" size="1"><select size="1" name="emne"> <option selected>emne 1</option> <option>emne 2</option> <option>emne 3</option> </select></font></td> </tr> <tr> <td width="12%" valign="top" height="176"><font face="Verdana" size="1">Besked:</font> </td> <td width="88%" height="176"><font face="Verdana" size="1"><textarea rows="8" name="besked" cols="47"></textarea></font></td> </tr> <tr> <td width="100%" colspan="2" height="27"> <p align="center"><font face="Verdana" size="1"><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></font></td> </tr> </table> </form> <p> </p> </body> </html>
Hvis du retter sidens navn skal du rette mail.asp til det rigtige i denne linie: ------------ <form method="POST" action="mail.asp?mode=send"> ------------ Husk at indtaske SKOLENS POP3
Mangler der ikke et email input felt, altså afsenderens email adresse?
Okay den havde jeg glemt kommer med sammen med valideringen
Mail.asp skal se sådan her ud: ---------------- <script language='JavaScript1.2' src='validatesubmit.js'></script> <% session("send") = "" if request.queryString("mode")="send" then Set Message = Server.CreateObject("JMail.SMTPMail") Message.ContentTransferEncoding = "8bit" Message.Charset = "ISO-8859-1" Message.Priority = 1 Message.ServerAddress = "SKOLENS POP3" Message.Sender = "eksperten@bokaj.dk" Message.Subject = "Mail fra kontaksiden" Message.Body = "Denne mail er sent fra kontaktiden" & vbCrLf & vbCrLf Message.Body= Message.Body + "******************************" & vbCrLf Message.Body= Message.Body + "Navn: " & request.form("navn") & vbCrLf Message.Body= Message.Body + "Adresse: " & request.form("adresse") & vbCrLf Message.Body= Message.Body + "Postnummer: " & request.form("postnr") & vbCrLf Message.Body= Message.Body + "By: " & request.form("by") & vbCrLf Message.Body= Message.Body + "E-Mail: " & request.form("mail") & vbCrLf Message.Body= Message.Body + "Emne: " & request.form("emne") & vbCrLf Message.Body= Message.Body + "Besked: " & request.form("besked") & vbCrLf Message.Body= Message.Body + "*******************************" Message.AddRecipient "eksperten@bokaj.dk" ' Det er denne adresse der modtager mailen Message.Execute set Message = nothing session("send") = "Mailen er sendt" end if %> <html> <head> </head> <body> <form name="mailform" method="POST" onsubmit="return validatesubmit(this)" action="mail.asp?mode=send"> <p align="center"><b><font face="Verdana" size="2"><%response.write session("send")%></font></b> <table border="0" width="100%" height="355"> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Navn:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="navn" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Adresse:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="adresse" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Postnummer:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="postnr" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">By:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="by" size="20"></font></td> </tr> <tr> <td width="12%" height="24"><font face="Verdana" size="1">E-Mail:</font> </td> <td width="88%" height="24"><font face="Verdana" size="1"><input type="text" name="mail" size="20"></font></td> </tr> <tr> <td width="12%" height="24"><font face="Verdana" size="1">Emne:</font> </td> <td width="88%" height="24"><font face="Verdana" size="1"><select size="1" name="emne"> <option selected>emne 1</option> <option>emne 2</option> <option>emne 3</option> </select></font></td> </tr> <tr> <td width="12%" valign="top" height="176"><font face="Verdana" size="1">Besked:</font> </td> <td width="88%" height="176"><font face="Verdana" size="1"><textarea rows="8" name="besked" cols="47"></textarea></font></td> </tr> <tr> <td width="100%" colspan="2" height="27"> <p align="center"><font face="Verdana" size="1"><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></font></td> </tr> </table> </form> <p> </p> </body> </html> ----------------
Så skal dette gemmes i en fil med navnet validatesubmit.js og ligge i samme mappe som mail.asp -------------- function validatesubmit(mailform) { invalidchar = "/:,;" if (mailform.navn.value == "") { alert("Indtast navn."); mailform.navn.focus(); return (false); } if (mailform.adresse.value == "") { alert("Indtast adresse."); mailform.adresse.focus(); return (false); } if (mailform.postnr.value == "") { alert("Indtast postnr."); mailform.postnr.focus(); return (false); } if (mailform.by.value == "") { alert("Indtast by."); mailform.by.focus(); return (false); } for (i=0; i<invalidchar.length; i++) { errorchar = invalidchar.charAt(i) if (mailform.mail.value.indexOf(errorchar, 0) > -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } } position = mailform.mail.value.indexOf("@", 1) if (position == -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (mailform.mail.value.indexOf("@", position+1) != -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } periodpos = mailform.mail.value.indexOf(".", position) if (periodpos == -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (periodpos+3 > mailform.mail.value.length) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (mailform.besked.value == "") { alert("Indtast besked."); mailform.besked.focus(); return (false); } return true; }
Den virker, men den sender ikke den indtastede email som afsender.
Du skal rette denne linie til din afsender: ------------- Message.Sender = "eksperten@bokaj.dk" -------------
Synes der mangler lidt ved validering: - Man kan indtaste bogstaver i post nr. og alle dem man vil - der kan være mere end 3 tegn efter punktum i email adresse
Ja tekst i Postnumre er ikke unormalt fx. D-12458 Hamburg
Det er så i orden! Men det med antal bogstaver efter punktum i mail synes jeg ikke er helt ok. Når du er kommet med en rettelse til det gives pointene!
Afsender adressen er nu ">eksperten@bokaj.dk eksperten@bokaj.dk - er den indtastede adressen Hvordan fjerner jeg "> ??
Byt koden i js filen ud med dette: ------------- function validatesubmit(mailform) { invalidchar = "/:,;" if (mailform.navn.value == "") { alert("Indtast navn."); mailform.navn.focus(); return (false); } if (mailform.adresse.value == "") { alert("Indtast adresse."); mailform.adresse.focus(); return (false); } if (mailform.postnr.value == "") { alert("Indtast postnr."); mailform.postnr.focus(); return (false); } if (mailform.by.value == "") { alert("Indtast by."); mailform.by.focus(); return (false); } for (i=0; i<invalidchar.length; i++) { errorchar = invalidchar.charAt(i) if (mailform.mail.value.indexOf(errorchar, 0) > -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } } position = mailform.mail.value.indexOf("@", 1) if (position == -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (mailform.mail.value.indexOf("@", position+1) != -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } periodpos = mailform.mail.value.indexOf(".", position) if (periodpos == -1) { alert("emailaddressen er ikke korrekt1.") mailform.mail.focus(); return (false); } if (periodpos+3 > mailform.mail.value.length) { alert("emailaddressen er ikke korrekt2.") mailform.mail.focus(); return (false); } if (periodpos != mailform.mail.value.length-4 && periodpos != mailform.mail.value.length-3) { alert("emailaddressen er ikke korrekt3.") mailform.mail.focus(); return (false); } if (mailform.besked.value == "") { alert("Indtast besked."); mailform.besked.focus(); return (false); } return true; }
Byt koden i js filen ud med dette: ------------- function validatesubmit(mailform) { invalidchar = "/:,;" if (mailform.navn.value == "") { alert("Indtast navn."); mailform.navn.focus(); return (false); } if (mailform.adresse.value == "") { alert("Indtast adresse."); mailform.adresse.focus(); return (false); } if (mailform.postnr.value == "") { alert("Indtast postnr."); mailform.postnr.focus(); return (false); } if (mailform.by.value == "") { alert("Indtast by."); mailform.by.focus(); return (false); } for (i=0; i<invalidchar.length; i++) { errorchar = invalidchar.charAt(i) if (mailform.mail.value.indexOf(errorchar, 0) > -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } } position = mailform.mail.value.indexOf("@", 1) if (position == -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (mailform.mail.value.indexOf("@", position+1) != -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } periodpos = mailform.mail.value.indexOf(".", position) if (periodpos == -1) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (periodpos+3 > mailform.mail.value.length) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (periodpos != mailform.mail.value.length-4 && periodpos != mailform.mail.value.length-3) { alert("emailaddressen er ikke korrekt.") mailform.mail.focus(); return (false); } if (mailform.besked.value == "") { alert("Indtast besked."); mailform.besked.focus(); return (false); } return true; }
mangler stadig det med fejl i afsender: Her er hele mail.asp koden: <script language='JavaScript1.2' src='validatesubmit.js'></script> <% session("send") = "" if request.queryString("mode")="send" then Set Message = Server.CreateObject("JMail.SMTPMail") Message.ContentTransferEncoding = "8bit" Message.Charset = "ISO-8859-1" Message.Priority = 1 Message.ServerAddress = "mail.ikasths.dk" Message.Sender = request.form("mail") Message.Subject = request.form("emne") Message.Body = "Denne mail er sent fra kontaktiden" & vbCrLf & vbCrLf Message.Body= Message.Body + "******************************" & vbCrLf Message.Body= Message.Body + "Navn: " & request.form("navn") & vbCrLf Message.Body= Message.Body + "Adresse: " & request.form("adresse") & vbCrLf Message.Body= Message.Body + "Postnummer: " & request.form("postnr") & vbCrLf Message.Body= Message.Body + "By: " & request.form("by") & vbCrLf Message.Body= Message.Body + "E-Mail: " & request.form("mail") & vbCrLf Message.Body= Message.Body + "Emne: " & request.form("emne") & vbCrLf Message.Body= Message.Body + "*******************************" Message.Body= Message.Body + "Besked: " & request.form("besked") & vbCrLf Message.Body= Message.Body + "*******************************" Message.AddRecipient "mikemcla@cs.auc.dk" ' Det er denne adresse der modtager mailen Message.Execute set Message = nothing session("send") = "Mailen er sendt" end if %> <html> <head> </head> <body> <form name="mailform" method="POST" onsubmit="return validatesubmit(this)" action="mail.asp?mode=send"> <p align="center"><b><font face="Verdana" size="2"><%response.write session("send")%></font></b> <table border="0" width="100%" height="355"> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Navn:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="navn" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Adresse:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="adresse" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">Postnummer:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="postnr" size="20"></font></td> </tr> <tr> <td width="12%" height="25"><font face="Verdana" size="1">By:</font> </td> <td width="88%" height="25"><font face="Verdana" size="1"><input type="text" name="by" size="20"></font></td> </tr> <tr> <td width="12%" height="24"><font face="Verdana" size="1">E-Mail:</font> </td> <td width="88%" height="24"><font face="Verdana" size="1"><input type="text" name="mail" size="20"></font></td> </tr> <tr> <td width="12%" height="24"><font face="Verdana" size="1">Emne:</font> </td> <td width="88%" height="24"><font face="Verdana" size="1"><select size="1" name="emne"> <option selected>Tilmelding til Ferniseringskort</option> <option>E-mail til galleriet</option> </select></font></td> </tr> <tr> <td width="12%" valign="top" height="176"><font face="Verdana" size="1">Besked:</font> </td> <td width="88%" height="176"><font face="Verdana" size="1"><textarea rows="8" name="besked" cols="47"></textarea></font></td> </tr> <tr> <td width="100%" colspan="2" height="27"> <p align="center"><font face="Verdana" size="1"><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></font></td> </tr> </table> </form> <p> </p> </body> </html>
Skal der være en <script> lige efter start tag'et ? Skal der ikke stå: <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
Ok, det virker nu. Jeg takker for hjælpen!
Der her <script language='JavaScript1.2' src='validatesubmit.js'></script> skal stå lige efter <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%> Hvis du skal have det med @Language med Sådan her: -------- <%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%> <script language='JavaScript1.2' src='validatesubmit.js'></script>
Kurser inden for grundlæggende programmering