Avatar billede tirra Nybegynder
14. februar 2004 - 20:51 Der er 15 kommentarer og
1 løsning

Jmail asp form

På mit webhotel kan man anvende Jmail bl.a. til at sende mail til webmester (formular)

Er det muligt at få kodeeksempler på sådan en formular,
eks. kunne den indeholde følgende:

Felt til senders mailadresse
Felt til Overskrift
Felt til senders fornavn og efternavn
Felt til senders adresse (gade/nr)
Felt til senders postnr. og by
Textfelt til sendar at skrive i (Besked/forklaring)


PS.
I koden skal man vel implementere modtag-mail-adresse
Avatar billede eagleeye Praktikant
14. februar 2004 - 21:07 #1
Her er et eks, du skal selv lige tilføje den mail adresse som skal modtage mailen i denne linje:
  JMail.AddRecipient "DIN EAMIL ADRESSE"

og den mail server mailen skal sendes igennem:
  JMail.ServerAddress = "tele.dk"


<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  email = Request.Form("email")
  Overskrift = Request.Form("overskrift")
  fornavn = Request.Form("fornavn")
  efternavn = Request.Form("efternavn")
  Adresse = Request.Form("adresse")
  Postnummer = Request.Form("postnummer")
  By = Request.Form("by")
  besked = Request.Form("besked")

  body = "Hej " & vbCrLf
  body = body & "Navn : " & fornavn & " " & efternavn & vbCrLf
  body = body & "Email : " & email & vbCrLf
  body = body & "Adresse : " & Adresse & vbCrLf
  body = body & "Postnummer : " & Postnummer & vbCrLf
  body = body & "By : " & by & vbCrLf
  body = body & "Beksed: " & vbCrLf & besked & vbCrLf & vbCrLf
  body = body & "Mvh. Din side"

  Set JMail = Server.CreateObject("JMail.SMTPMail")
'Angiv mail server adresse som mailen sksl sendes igennem
  JMail.ServerAddress = "tele.dk"
  JMail.Sender = email
  JMail.Subject = Overskrift
  JMail.AddRecipient "DIN EAMIL ADRESSE"
  JMail.Body = body
  JMail.Execute
  Set JMail = Nothing
 
  Response.Redirect(Request.ServerVariables("SCRIPT_NAME")&"?cmd=tak") 
end if
%>

<HTML>
<HEAD><TITLE>Untitled Document</TITLE></HEAD>
<BODY>
<% if Request.QueryString("cmd") = "tak" then %>
  Tak for din mail.
<% else %>
<form method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
<table>
<tr><td>Fornavn:</td><td><input type="text" name="fornavn"></td></tr>
<tr><td>Efternavn:</td><td><input type="text" name="efternavn"></td></tr>
<tr><td>Adresse:</td><td><input type="text" name="adresse"></td></tr>
<tr><td>By:</td><td><input type="text" name="by"></td></tr>
<tr><td>Postnummer:</td><td><input type="text" name="postnummer"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>Besked:</td><td><textarea name="besekd" cols="20" rows="6"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="Send" value="Send"></td></tr>
</table>

<% end if %>
</BODY>
</HTML>
Avatar billede tirra Nybegynder
14. februar 2004 - 21:48 #2
Er i tvivl om der skal være to filer.
Skal den sidste del af koden være i en anden fil, denne:

<HTML>
<HEAD><TITLE>Untitled Document</TITLE></HEAD>
<BODY>
<% if Request.QueryString("cmd") = "tak" then %>
  Tak for din mail.
<% else %>
<form method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
<table>
<tr><td>Fornavn:</td><td><input type="text" name="fornavn"></td></tr>
<tr><td>Efternavn:</td><td><input type="text" name="efternavn"></td></tr>
<tr><td>Adresse:</td><td><input type="text" name="adresse"></td></tr>
<tr><td>By:</td><td><input type="text" name="by"></td></tr>
<tr><td>Postnummer:</td><td><input type="text" name="postnummer"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>Besked:</td><td><textarea name="besekd" cols="20" rows="6"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="Send" value="Send"></td></tr>
</table>

<% end if %>
</BODY>
</HTML>
------------------

Forstår ellers ikke den her:
Response.Redirect(Request.ServerVariables("SCRIPT_NAME")&"?cmd=tak")
Avatar billede eagleeye Praktikant
14. februar 2004 - 21:50 #3
Som det er vist skal koden være i samme fil.

Den redirecter til sig selv, Request.ServerVariables("SCRIPT_NAME") giver filnavnet hvori koden er.
Avatar billede eagleeye Praktikant
14. februar 2004 - 21:51 #4
men det kan godt deles op så skal der bare rettes lidt i noget af det.
Avatar billede tirra Nybegynder
14. februar 2004 - 22:15 #5
Får fejlmelding: jmail.SMTPMail error '8000ffff'

i linje 28 som er: JMail.Execute
Avatar billede eagleeye Praktikant
14. februar 2004 - 22:17 #6
Det betyder som regel at enten Server adressen er forkert eller en mail adresse er forkert. Det gælder både den man sender til og den som står som afsender. Så prøv at tjekke dem.
Avatar billede tirra Nybegynder
14. februar 2004 - 22:20 #7
Der er en anden J'mail form på webbet som virker, den sender.
Jeg kan bare ikke finde ud af hvordan den kan forbedres, så jeg må gå ud fra at det er noget med koden :(
Avatar billede eagleeye Praktikant
14. februar 2004 - 22:22 #8
Så brug det kode som virker :) og tilføje den form du har behov for.

Her du rette denne linje:?
  JMail.ServerAddress = "tele.dk"
Avatar billede tirra Nybegynder
14. februar 2004 - 22:26 #9
JMail.ServerAddress =
har jeg kopieret fra den anden
Avatar billede eagleeye Praktikant
14. februar 2004 - 22:30 #10
Ok, hvad med denne:
  JMail.AddRecipient "DIN EAMIL ADRESSE"

I email'en feltet skal der skrives en gyldig adresse da den bruger som afsender i denne:
  JMail.Sender = email

Det kan måske være det ikke skal være email som man indtaster der skal være afsender men også en fast adresse:
  JMail.Sender = "din email adresse"
Avatar billede tirra Nybegynder
14. februar 2004 - 22:34 #11
Formen som virker er noget rod (synes jeg:), som jeg ikke kan finde ud af at lave om på. Du ku måske hjælpe mig at lave om på den:
       
<%
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
%>


<form method="post" action="Mail.asp"><br>
Fornavn: <input type="text" name="fornavn" size="50"><br><br>
Efternavn: <input type="text" name="efternavn" size="50"><br><br>
<input type="hidden" name="email" value="kk@da.dk" size="20">

<textarea name="text" rows="10" cols="40"></textarea><br><br>
<input type="submit" value="Send">
</form>

<%
If Request.ServerVariables("Request_Method") = "POST" Then

'if MailOK(Request.Form("email")) then
      Set JMail = Server.CreateObject("JMail.SMTPMail")
      JMail.ServerAddress = "127.0.0.1"
    JMail.SenderName = Request.Form("fornavn") & " " & Request.Form("efternavn")
    JMail.Sender = Request.Form("email")
    JMail.AddRecipientEx "kk@da.dk", "Fra hjemmesiden"
    JMail.Subject = "Fra hjemmesiden"
    JMail.Body = Request.Form("tekst")
   
    Email = Request.Form("email")
    If Trim(Email) = "" Then Email = "kk@da.dk"
   
    JMail.Sender = Email
   
    JMail.Execute
   
    JMail.Close
    Set JMail = Nothing
   
    Response.Redirect("Tak.asp")
'else
'response.write("forkert email")
'end if

End If
%>
Avatar billede eagleeye Praktikant
14. februar 2004 - 22:42 #12
Så prøv sådan her en kompination af de to:


<%
If Request.ServerVariables("Request_Method") = "POST" Then
  email = Request.Form("email")
  Overskrift = Request.Form("overskrift")
  fornavn = Request.Form("fornavn")
  efternavn = Request.Form("efternavn")
  Adresse = Request.Form("adresse")
  Postnummer = Request.Form("postnummer")
  By = Request.Form("by")
  besked = Request.Form("besked")

  body = "Hej " & vbCrLf
  body = body & "Navn : " & fornavn & " " & efternavn & vbCrLf
  body = body & "Email : " & email & vbCrLf
  body = body & "Adresse : " & Adresse & vbCrLf
  body = body & "Postnummer : " & Postnummer & vbCrLf
  body = body & "By : " & by & vbCrLf
  body = body & "Beksed: " & vbCrLf & besked & vbCrLf & vbCrLf
  body = body & "Mvh. Din side"

    Set JMail = Server.CreateObject("JMail.SMTPMail")
    JMail.ServerAddress = "127.0.0.1"
    JMail.SenderName = Request.Form("fornavn") & " " & Request.Form("efternavn")
    JMail.Sender = Request.Form("email")
    JMail.AddRecipientEx "kk@da.dk", "Fra hjemmesiden"
    JMail.Subject = "Fra hjemmesiden"
    JMail.Body = body
   
    Email = Request.Form("email")
    If Trim(Email) = "" Then Email = "kk@da.dk"
   
    JMail.Sender = Email
   
    JMail.Execute
   
    JMail.Close
    Set JMail = Nothing
   
    Response.Redirect("Tak.asp")
End If
%>

<form method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>">
<table>
<tr><td>Fornavn:</td><td><input type="text" name="fornavn"></td></tr>
<tr><td>Efternavn:</td><td><input type="text" name="efternavn"></td></tr>
<tr><td>Adresse:</td><td><input type="text" name="adresse"></td></tr>
<tr><td>By:</td><td><input type="text" name="by"></td></tr>
<tr><td>Postnummer:</td><td><input type="text" name="postnummer"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td>Besked:</td><td><textarea name="besekd" cols="20" rows="6"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="Send" value="Send"></td></tr>
</table>
</form>
Avatar billede tirra Nybegynder
14. februar 2004 - 22:47 #13
Nu ved jeg ikke hvad der går galt,
jeg går ud fra at "modtager adressen" skal ligge i koden og at den som sender mail fra hjemmesiden ikke blir informeret om "modtager adressen"
Ved ikke om det er noget rod ;)
Avatar billede eagleeye Praktikant
14. februar 2004 - 22:53 #14
Dette er modtager adressen, så det ligger fast i koden og den som sender kan ikke se hvem mailen sendes til.
JMail.AddRecipientEx "kk@da.dk", "Fra hjemmesiden"

Dette er den som kommer til at stå som afsender i mail programet:
JMail.Sender = Request.Form("email")

Det ikke noget rod, det meget normalt for mail form de virker på den måde :)
Spørgsmål er hvem skal stå som afsender af mail, om det skal være en fast
JMail.Sender = "kk@da.dk"
eller det skal være den adresse som tastes ind i formen
Avatar billede tirra Nybegynder
14. februar 2004 - 23:01 #15
Nu fungerer den perfekt, jeg takker, må jeg be om svar
Avatar billede eagleeye Praktikant
14. februar 2004 - 23:02 #16
Ja ok :)
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



IT-JOB