Avatar billede Slettet bruger
11. februar 2002 - 11:08 Der er 12 kommentarer og
1 løsning

Avanceret mailingliste

Hej

Jeg har brug for at en bruger skal kunne tilmelde sig en slags mailingliste der gør at vedkommende modtager en email hver gang der er en ny post i det rs som han/hun har valgt...

Altså en form m flg. inputs:
- navn
- email
og i mit tilfælde - 2 dropdowns (som ikke skal genereres i ASP men blot i HTML) -
- f.eks Hunde, Katte, Marsvin, Akvariefisk osv.
- f.eks Danmark, Rusland, Afghanistan osv.

Hvis John Doe med email'en john@doe.com således ønskede at få besked om hvornår der var ankommet nye russiske marsvin - skal han ha det!

Have I made myself clear?

På forhånd tak
Avatar billede integra2ren Nybegynder
11. februar 2002 - 23:00 #1
Du kan gøre det på denne måde:

Hvis John Doe taster sine oplysninger ind i en form, som du herefter fylder i en database. Husk at lave et emne (Katte, marsvin..)som også lægges i databasen

Så laver du en side med en form som hælder oplysninger i en database som bruges til indholdet på siden. Og når du så klikker på knappen i send bliver oplysningerne både lagt i databasen og sendt til brugeren. Brugeren navn email og hvilke kategori han abonnerer på hentes fra databasen.

Her er et eksempel:


<%
    overskrift = request("overskrift")
    besked = request("besked")   

if  Request.ServerVariables("REQUEST_METHOD") = "POST" then


    response.write " Følgende har fået tilsendt nyhedsbrevet<br><br><br> "
   
    'her skrives indholdet til databasen
       
        Const adOpenKeyset = 1
        Const adLockOptimistic = 3
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/db.mdb")

        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "Select * From dagbog"
        rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

        rs.AddNew
        rs("overskrift") = Request.form("overskrift")
        rs("Besked") = Request.form("Besked")
       
        rs.Update

        rs.Close
        Set rs = Nothing

        Conn.Close
        set Conn = Nothing

    'her åbnes til login databasen
       
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/db.mdb")
        SQLstmt = "SELECT * FROM login ORDER BY ID desc;"
        Conn.Execute (SQLstmt)
        Set rs = conn.Execute(SQLstmt)

    'looper resultatet

        DO WHILE NOT rs.EOF
        ID = rs("ID")
        navn = rs("navn")
        email = rs("email")
        on error resume next
   

    'her starter jmail indholdet sendes via email

   
        Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ContentTransferEncoding = "8bit"
        JMail.Charset = "ISO-8859-1"
       
        JMail.Priority = 1
        JMail.ServerAddress = "smtp.integra2ren.dk"
        JMail.Sender = "dorthe@integra2ren.dk"
        JMail.Subject = "Dorthes Dagbog"
        JMail.Body = "bla bla bla" & vbCrLf & vbCrLf &"xxxxx har skrevet:" & vbCrLf & vbCrLf & vbCrLf & overskrift & vbCrLf & vbCrLf & besked & "....." & vbCrLf & vbCrLf & vbCrLf
        JMail.Body= JMail.Body + "klik ind på www.integra2ren.dk/dorthe og læs resten" & vbCrLf & vbCrLf
        JMail.Body= JMail.Body + "-------------------------------------------------------------------"  & vbCrLf
        JMail.Body= JMail.Body + "Her kan du læse om hvordan hverdagen er i xxxxxx og du kan se billeder af forskellige kendte steder i byen" & vbCrLf & "Der er også mulighed for at DU kan påvirke siden. " & vbCrLf & "Skriv en hilsen eller et spørgsmål til Dorthe eller kommentér en af de andre brugeres indlæg på siden" & vbCrLf & vbCrLf
        JMail.Body= JMail.Body + "Hvis du vil skrive direkte til Dorthe kan du gøre det på dorthe-d-jensen@ofir.dk" & vbCrLf   
        JMail.Body= JMail.Body + "-------------------------------------------------------------------"  & vbCrLf 
        JMail.Body= JMail.Body + "xxxxx er lavet af Thomas Jensen  " & vbCrLf & vbCrLf & "Hvis du har ris eller ros kan du skrive til: " 

        JMail.AddRecipient email
        ' Send it...
        JMail.Execute
        set JMail = nothing
        response.redirect("email.asp")

   

    'lukker databasen
       
        rs.MoveNext
        LOOP
        RS.Close
        conn.Close
        Set conn = nothing
        Set SQLstmt = nothing
    'her kommer selve html-siden som du selv kan lave som du vil husk Formen til at fylde indhold i databasen
else %>
<!--#include file = "../incl/setup.asp"-->
<html>
<head><title></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../incl/style.css" type="text/css">
</head>


<body bgcolor="#FFFFFF" text="#000000">
    <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
    <TBODY>
    <TR>
    <TD vAlign=top align=middle>

    <TABLE cellSpacing=0 cellPadding=0 border=0>
        <TBODY>
    <TR>
    <TD bgcolor="#FFFFFF"><a href="http://www.INTEGRA2REN.DK/dorthe"><IMG height=39 alt="" src="../grafik/images/admin/logo1.jpg" width=121 border=0></a></TD>
    <TD background="../grafik/images/admin/top.jpg" width="479">

    <%=adminmenu%>
    </TD>
        </TR>
    <TR>
    <TD colSpan=2><img src="../grafik/images/admin/dagbog_top.jpg" width="600" height="77" border="0"></TD>
        </TR
        <TR>
    <TD colSpan=2>

       

    <form method="POST" class="css" action="form.asp">

    <center><br>

    <table border="0" width="400">
    <tr>
    <td align="right">Overskrift:    &nbsp;&nbsp;</td>
    <td ><input ID="FORM" type="text" name="overskrift" size="35"></td>
    </tr>
    <tr>
    <td Valign="top" align="right">Emne:        &nbsp;&nbsp;</td>
    <td><textarea ID="FORM" wrap="virtual" name="Besked" cols="45" rows="8"></textarea></td>
    </tr>
    <tr>
    <td Valign="middle" align="center" colspan="2"><br><input ID="small_submit" type="submit" value="Gem"></td>
    </tr>
    </table>

    </center>

</form>




    </TD>
        </TR>
        <TR>
    <TD colSpan=2><IMG height=19 alt="" src="../grafik/images/admin/bund_bar.jpg" width=600 border=0></TD>
        </TR>
        <TR>
        <TD colSpan=2><A href="http://www.INTEGRA2REN.DK" target=_self><IMG height=20 alt="" src="../grafik/images/admin/copy.jpg" width=79 border=0> </A></TD>
        </TR>
    </TBODY>
    </TABLE>
    </TD>
    </TR>
    </TBODY>
    </TABLE>
</body>
</html>
<%end if%>
Avatar billede integra2ren Nybegynder
11. februar 2002 - 23:02 #2
Håber det kan bruges :-)

Det er rimelig nemt at forstå. Ellers kan du prøve at finde et "anbefal til en ven"-script som du bygger sammen med nogle databaser.
Avatar billede Slettet bruger
12. februar 2002 - 12:24 #3
integra2 > Det ser da meget godt ud, men jeg kan ikke se hvor den funktion som jeg efterspørger er henne - nemlig at der hver gang der kommer en ny post skal sendes en email.
Altså jeg har en tbl_abbon_email :
ID(auto), Navn(navn fra formen), Email(email fra formen), Abbo_sted(Land fra formen), Abbo_type(hvilket dyr), Status(enten "har" eller "soeger")
Den skal jo så holdes op mod en anden tabel, således at hvis der en der smækker noget data i "hovedtabellen" som matcher en eller anden persons ønsker i tbl_abbon_email så skal denne en eller anden ha' en email om det...
Avatar billede integra2ren Nybegynder
12. februar 2002 - 22:18 #4
Det sker idet indholdet bliver sendt. Det script jeg har givet dig er det script du bruger til at fylde indhold i siden. Når du så trykker på knappen sender den indholdet af formen både til siden og henter email adresser fra en database som den også sender et eller andet til (i dette tilfælde en del af indholdet og en fast hilsen).
Den database med emailadr kan du opbygge med et par kolonner med de forskellige emneområder.
Så kan du jo select * fra tilmeldte WHERE emne = dyr

og så sende til dem der kommer ud.
Avatar billede Slettet bruger
13. februar 2002 - 10:22 #5
integra2 > Jeg tror faktisk det begynder at se helt godt ud, men hvordan får jeg den til at tage nogle oplysninger fra den netop afsendte form, om smække med i mailen?
Jeg har lavet en sql der hedder:
strSted = request.form("Sted")
strType = request.form("Type")

SQLstmt = "SELECT * FROM tbl_abbon_email WHERE Abbo_sted = 'strSted' AND Abbotype = 'strType' AND Status = 'Soeger' ORDER BY ID desc;"

Kan man ovenstående SQL og hvis ikke - hvordan skal det så skrives?

Dernæst ville jeg gerne i Jmail.Body - have nogle oplysninger fra formen igen - altså skal de to variabler strSted og StrType være med i mailen også...

Ala sådan her:
Kære "navn"

Der er en ny post i den kategori du har valgt at abbonere på :

- "strType"
- "strSted"
Avatar billede integra2ren Nybegynder
13. februar 2002 - 10:30 #6
Hvis du ser på dette stykke så er login-databasen de tilmeldte til den nyhedstjeneste.

Først forbindelse til databasen og derefter sættes nogle variabler, som kaldes senere i jmail.body.

  'her åbnes til login databasen
       
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../../db/db.mdb")
        SQLstmt = "SELECT * FROM login ORDER BY ID desc;"
        Conn.Execute (SQLstmt)
        Set rs = conn.Execute(SQLstmt)

    'looper resultatet

        DO WHILE NOT rs.EOF
        ID = rs("ID")
        navn = rs("navn")
        email = rs("email")
        on error resume next
   

    'her starter jmail indholdet sendes via email

   
        Set JMail = Server.CreateObject("JMail.SMTPMail")
        JMail.ContentTransferEncoding = "8bit"
        JMail.Charset = "ISO-8859-1"
       
        JMail.Priority = 1
        JMail.ServerAddress = "smtp.integra2ren.dk"
        JMail.Sender = "dorthe@integra2ren.dk"
        JMail.Subject = "Dorthes Dagbog"
        JMail.Body = "bla bla bla" & vbCrLf & vbCrLf &"xxxxx har skrevet:" & vbCrLf & vbCrLf & vbCrLf & overskrift & vbCrLf & vbCrLf & besked & "....." & vbCrLf & vbCrLf & vbCrLf
        JMail.Body= JMail.Body + "klik ind på www.integra2ren.dk/dorthe og læs resten" & vbCrLf & vbCrLf
        JMail.Body= JMail.Body + "-------------------------------------------------------------------"  & vbCrLf
        JMail.Body= JMail.Body + "Her kan du læse om hvordan hverdagen er i xxxxxx og du kan se billeder af forskellige kendte steder i byen" & vbCrLf & "Der er også mulighed for at DU kan påvirke siden. " & vbCrLf & "Skriv en hilsen eller et spørgsmål til Dorthe eller kommentér en af de andre brugeres indlæg på siden" & vbCrLf & vbCrLf
        JMail.Body= JMail.Body + "Hvis du vil skrive direkte til Dorthe kan du gøre det på dorthe-d-jensen@ofir.dk" & vbCrLf   
        JMail.Body= JMail.Body + "-------------------------------------------------------------------"  & vbCrLf 
        JMail.Body= JMail.Body + "xxxxx er lavet af Thomas Jensen  " & vbCrLf & vbCrLf & "Hvis du har ris eller ros kan du skrive til: " 

        JMail.AddRecipient email
        ' Send it...
        JMail.Execute
        set JMail = nothing
        response.redirect("email.asp")

   

    'lukker databasen
       
        rs.MoveNext
        LOOP
        RS.Close
        conn.Close
        Set conn = nothing
        Set SQLstmt = nothing
    'her kommer selve html-siden som du selv kan lave som du vil husk Formen til at fylde indhold i databasen
Avatar billede integra2ren Nybegynder
13. februar 2002 - 10:33 #7
JMail.Body = "bla bla bla" & vbCrLf & vbCrLf &"xxxxx har skrevet:" & vbCrLf & vbCrLf & vbCrLf & overskrift & vbCrLf & vbCrLf & besked & "....." & vbCrLf & vbCrLf & vbCrLf

Her er f.eks besked en variabel som igen er et rs fra en database som er connectet længere oppe
Avatar billede Slettet bruger
13. februar 2002 - 11:36 #8
inte > Nå ja - det havde jeg ikke lige set. Hvad med den sql jeg havde skrevet?
Avatar billede integra2ren Nybegynder
14. februar 2002 - 15:01 #9
Ser ud til at  ville virke men jeg er ikke den store sql-haj. Så derfor vil jeg ikke spille klog på din udemærkede sætning :-)

Men prøv den
Avatar billede Slettet bruger
14. februar 2002 - 19:49 #10
integra2 > Det virker sgu over al forventning.......... Lige bortset fra at den ikke tager mine variabler med i mailen - dem som i dit eksempel hedder
ID = rs("ID")
navn = rs("navn")
email = rs("email")
Kommer de med i mailen hos dig??
PS: Du skal nok få points...
Avatar billede Slettet bruger
15. februar 2002 - 18:45 #11
Nu virker det - mange tak !!!
Avatar billede integra2ren Nybegynder
16. februar 2002 - 00:12 #12
ok god fornøjelse
Avatar billede integra2ren Nybegynder
19. februar 2002 - 13:01 #13
HUSH at lave afsender emailen om så du selv får alle fejlmedelserne. Jeg er lidt træt af dem:

lav denne linie om:
  JMail.ServerAddress = "smtp.integra2ren.dk"
til:
  JMail.ServerAddress = "smtp.ditdomæne"

TAK
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