Avatar billede hojben Novice
13. august 2006 - 23:13 Der er 11 kommentarer og
1 løsning

mangler jmail script til gæstebog.

Har hentet Dennis Knappe's gæstebog, men den sender ikke en besked når der tilføjes i bogen.

Jeg vil bruge Jmail til at sende.

Her er koden:

<%
' --------------------------------------------------------------------------------
' Dette eksempel er skrevet af Dennis Knappe ( info@activeserverpages.dk )
' Eksemplet kan downloades fra http://www.activeserverpages.dk
' Scriptet kan frit anvendes til ikke kommercial brug, ønsker du at bruge scriptet
' i et kommercial sammenhæng kontakt da venligst Dennis Knappe
' --------------------------------------------------------------------------------
Const adOpenKeyset = 1
Const adLockOptimistic = 3

strMode = Request.QueryString("mode")
tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("gb/database.mdb") & ";UID=admin;PWD=;"

If Request.Form("Gem") <> "" Then
    strError = ""
    strNavn = Trim(Request.Form("Navn"))
    strEmail = Trim(Request.Form("Email"))
    strKommentar = Trim(Request.Form("Kommentar"))
    If Len(strNavn) = 0 Then
        strError = "<li>Du skal skrive dit navn!</li>"
    ElseIf validateEmail(strEmail) = False Then
        strError = "<li>Du skal skrive en gyldig e-mail adresse!</li>"
    ElseIf Len(strKommentar) = 0 Then
        strError = "<li>Du skal skrive en kommentar!</li>"
    End If
    If Len(strError) = 0 Then
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "SELECT * FROM Guestbook WHERE (ID = 0)"
        rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
        If (rs.BOF Or rs.EOF) Then
            rs.AddNew
            rs("Navn") = Server.HTMLEncode(strNavn)
            rs("Email") = Server.HTMLEncode(strEmail)
            rs("Kommentar") = Server.HTMLEncode(strKommentar)
            rs("Dato") = Now()
            rs.Update
        End If
        rs.Close
        Set rs = Nothing
       
    Else
        strError = "<p><ul><font color=#FF0000>" & strError & "</font></ul></p>"
        strMode = "add"
    End If
End If
%>
  <div align="center"><table border="0" width="400" cellspacing="0" cellpadding="3" style="border-left: 1px solid rgb(0,0,0); border-right: 1px solid rgb(0,0,0); border-top: 1px solid rgb(0,0,0); border-bottom: 2px solid rgb(0,0,0)">
    <tr>
      <td width="100%">
<%
Select Case strMode
Case "add"
%>
<form method="POST" action="gb.asp">
<table border="0" width="100%" cellspacing="0" cellpadding="2">
        <tr>
          <td valign="middle" align="left" colspan="2"><font face="verdana" size="2"><br>Indtast venligst oplysningerne i følgende felter:<strong>
      <%=strError%></td>
        </tr>
        <tr>
          <td valign="middle" align="left"><div align="right"><p><strong><font face="verdana" size="2">Navn</font></strong></td>
          <td valign="middle" align="left"><input type="text" name="Navn" size="40" value="<%=strNavn%>"></td>
        </tr>
        <tr>
          <td valign="middle" align="left"><div align="right"><p><strong><font face="verdana" size="2">E-mail</font></strong></td>
          <td valign="middle" align="left"><input type="text" name="Email" size="40" value="<%=strEmail%>"></td>
        </tr>
        <tr>
          <td valign="top" align="left"><div align="right"><p><strong><font face="verdana" size="2">Kommentar</font></strong></td>
          <td valign="middle" align="left"><textarea rows="3" name="Kommentar" cols="40"><%=strKommentar%></textarea></td>
        </tr>
        <tr>
          <td valign="middle" align="left" colspan="2"><br>
          <input type="submit" value="Gem" name="Gem"> <input type="button" value="Annuller" name="Annuller" onClick="java script:location.href='gb.asp'"></td>
        </tr>
      </table>
</form>
<%
Case Else
    strAddLine = "<p><img src=gb/add.gif width=16 height=16>&nbsp;<a href=gb.asp?mode=add><strong><font face=verdana size=2>Skriv et indlæg i min gæstebog!</font></strong></a></p>"
    Response.Write strAddLine
    strSQL = "SELECT * FROM Guestbook ORDER BY Dato DESC;"
    Set myConn = Server.CreateObject("ADODB.Connection")
    myConn.Open tempConn
    Set rs = myConn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then
        Response.Write "<table width=100% border=0 cellpadding=1 cellspacing=1>"
        Do While Not rs.EOF
            dtmDato = rs("Dato")
            dtmDato = FormatDateTime(dtmDato,vbLongDate) & " kl. " & FormatDateTime(dtmDato,vbLongTime)
            Response.Write "<tr bgcolor=#C0C0C0><td width=""100%""><font face=verdana size=2>" & dtmDato & "</td></tr>"
            If Len(rs("Email")) > 0 Then
                Response.Write "<tr><td><font face=verdana size=2><strong><a href=mailto:" & rs("Email") & ">" & rs("Navn") & "</a> skriver:</strong></td></tr>"
            Else
                Response.Write "<tr><td><font face=verdana size=2><strong>" & rs("Navn") & " skriver:</strong></td></tr>"
            End If
            Response.Write "<tr><td><font face=verdana size=2>" & rs("Kommentar") & "<br>&nbsp;</td></tr>"
            rs.MoveNext
        Loop
        Response.Write "</table>"
    Else
        Response.Write "<p><font face=verdana size=2>Der er endnu ikke nogle der har skrevet i gæstebogen</font></p>"
    End If
    myConn.Close
    Set myConn = Nothing
    Response.Write strAddLine
End Select
%>
</tr>
    <tr align="center">
      <td width="100%" bgcolor="#000000">&nbsp;</td>
    </tr>
  </table>
  </center></div>

<script language="VBScript" runat="Server">
Function validateEmail(strEmail)
    validateEmail = True
    If Len(strEmail) < 6 Then
        validateEmail = False
    End If
    If InStr(1, strEmail, "@", 1) < 2 Then
        validateEmail = False
    End If
    If InStr(1, strEmail, ".", 1) = 0 Then
        validateEmail = False
    End If
    pos = InStr(1, strEmail, "@", 1)
    If pos < 2 Then
        validateEmail = False
            Else
        pos = InStr(pos+1, strEmail, "@")
        If pos > 0 Then
            validateEmail = False
        End If
    End If
End Function
</script>

En der kan hjælpe?
Avatar billede hojben Novice
14. august 2006 - 11:04 #1
er det svært? Ved godt at E gik ned i nat og den så måske ikke er blevet set.
Avatar billede hnteknik Novice
14. august 2006 - 11:50 #2
Hvor er Jmail delen ? Det er den, det er galt med. Du skal rette mailserver og webstedets mailadresse til.
Avatar billede hojben Novice
14. august 2006 - 16:08 #3
det er den jeg mangler.. og ikke helt forstår hvor den skal sættes ind henne.
Avatar billede hojben Novice
14. august 2006 - 22:40 #4
mangler den stadig :)
Avatar billede hnteknik Novice
14. august 2006 - 22:48 #5
iNDSÆT DEN HER:

    If Len(strError) = 0 Then
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "SELECT * FROM Guestbook WHERE (ID = 0)"
        rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
        If (rs.BOF Or rs.EOF) Then
            rs.AddNew
            rs("Navn") = Server.HTMLEncode(strNavn)
            rs("Email") = Server.HTMLEncode(strEmail)
            rs("Kommentar") = Server.HTMLEncode(strKommentar)
            rs("Dato") = Now()
            rs.Update
        End If
        rs.Close
        Set rs = Nothing


'du kan finde eksempler på scripts her eller på jmails egen hjemmeside. Jeg har skrevet eks. et par gange her. Husk at afsender skal være en af webstedet kendt emailadresse adm@websted.dk og mailserver skal ændres til webstedets.
Avatar billede hojben Novice
14. august 2006 - 22:53 #6
hvor skal den indsættes?
Avatar billede hojben Novice
14. august 2006 - 22:55 #7
men det får den jo ikke til at sende. Jeg ved godt jeg kan finde scripts men aner dyt om hvor jmail delen skal indsættes.
Avatar billede hnteknik Novice
14. august 2006 - 23:01 #8
Den skal indsættes lige efter set rs = nothing

og fylder vel 5-10 liner.

Det kræver altså, at du har et websted. det har jmail komponenten installeret og du har navnet på den mailserver webstedet bruger og du har en mailadresse knyttet til stedet.
Avatar billede hojben Novice
14. august 2006 - 23:34 #9
Nu fandt jeg det..

Set JMail          = Server.CreateObject("JMail.SMTPMail")
  JMail.ServerAddress = "smtp.fthmail.dk"
  JMail.Sender        = "gbog@xxx.dk"
  JMail.Subject      = "Gæstebog"
  JMail.AddRecipient  "michael@xxx.dk;janne@xxx.dk"
  JMail.Priority      = 3
  JMail.AddHeader    "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
 
  ' ********** Her starter selve email-en
  JMail.Body = "Dette er linie 1 af brevet" & vbCrLf &_
              "Og her kommer linie 2"
  ' ********** Her slutter selve email-en
 
  JMail.Execute
 
  Set JMail = Nothing

men jeg vil godt ha sendt til 2 personer, hvad er det nu det hedder der?
Avatar billede hojben Novice
14. august 2006 - 23:47 #10
Fandt løsningen..

JMail.AddRecipient  "michael@xxx.dk"
JMail.AddRecipient  "janne@xxx.dk"

man skulle bare fortsætte med at skrive ovenstående på alle dem der skulle ha mailen..

Smid et svar :)
Avatar billede hnteknik Novice
15. august 2006 - 08:41 #11
Der er flere version er jmail componenten, men hvis ovennævnte script sender en mail, så har du ramt den rigtige.
Avatar billede hojben Novice
15. august 2006 - 18:33 #12
Jeg ramte rigtigt *ss*
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