Forum besvarelse - mail kun 1 gang
Hejsa!Jeg har et lille problem.
Problemet består i, at folk der har sagt ja til at modtage en mail når der kommer et nyt indlæg i den tråd de deltager i, i mit debatforum får en mail for hvert indlæg de har lavet i det forum.
Dvs. har du lavet 3 indlæg i en tråd, så får du 3 mails når der kommer et nyt svar...
Access tabellen, hvor indlæggene er i, er bygget op således:
Id Emne Dato Navn Mail Message SvarId ForumId svarmail
Hvor svarmail har værdien 1 for "Ja jeg vil modtage mail" og ellers 0. ForumID er id på forummet og SvarId indeholder ID'en, som det første indlæg i tråden har fået tildelt.
Min kode ser således ud:
----Snip---
<%
If Request("emne") <> "" AND Request("navn") <> "" Then
UpdateDB = TRUE
emne = DBFix(TRIM(Request("emne")))
navn = DBFix(TRIM(Request("navn")))
Else
UpdateDB = FALSE
End IF
If Request("Mail") = "" Then
mail="-"
Else
mail = DBFix(TRIM(Request("mail")))
End if
If Request("Message") = "" Then
message="-"
Else
message = DBFix(TRIM(Request("message")))
End If
intReplyID = cINT(Request("SvarID"))
intForumID = cINT(Request("ForumID"))
comid = (Trim(Request("brugerid")))
if request("sendmail") = "On" then
checked = 1
else
checked = 0
end if
If comid="" then comid=0
If UpdateDB = True then
strSql = "INSERT INTO Messages (Emne, Navn, Mail, Message, SvarID, ForumID, Comid, svarmail) VALUES "
strSql = strSql & "('" & (emne) & "','" & (navn) & "','" & (mail) & "','" & (message) & "','" & (intReplyID) & "','" & (intForumID) & "','" & (comid) & "','" & (checked) &"')"
Set Connect = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & "d:\home\testdk\db\Forum.mdb"
Connect.Open strDSN
Connect.Execute strSql
strAnswer="Dit Indlæg er optaget i forummet!"
strLink="<a href=""show_data.asp?ForumID="&intForumID&""">[Tilbage til debatten]</a>"
Else
strAnswer="Du mangler at udfylde nogle af følgende felter (navn,emne)"
strLink="<a href=""enter_data.asp?ForumID="&intForumID&"&sID="&intReplyID&""">Tilbage</a>"
End If
%>
<%
Response.Buffer = True
' Connection til database.
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & "d:\home\testdk\db\Forum.mdb"
%>
<%
Sql = "Select * from messages where Svarid = " & Request.QueryString("SvarID") & "AND svarmail=1"
Set oRs = Conn.Execute(Sql)
do while oRs.eof=false
email = oRs("Mail")
navn = oRs("Navn")
overskrift = oRs("Emne")
id = oRs("Id")
Forumid = oRs("ForumId")
NTekst = tekst
NTekst=replace(NTekst, chr(13),"<br>")
%>
<%
Set JMail = Server.CreateObject("JMail.SMTPMail")
Jmail.ContentType = "text/HTML"
JMail.ServerAddress = "websmtp.test.dk"
JMail.Sender = "Test"
JMail.Subject = "Test Forum" & emne
JMail.AddRecipient oRs("Mail")
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Body= str & "Hej " & navn & "<br><br>Der er blevet svaret på dit indlæg i vores forum. <br><br>Du kan læse svaret på denne side: <a href='http://www.test.dk/forum/show_message.asp?MessageId=" & id & "&ForumId=" & Forumid &"'>" & "Klik her" & "</a>"
JMail.execute
Set JMail = Nothing
%>
<%
oRs.movenext
loop
%>
----Snip---
Jeg håber I kan hjælpe :-)
Er der spørgsmål til ovenstående, så stil dem endeligt! ;-)
Mvh
Jan
