Avatar billede moejensen Nybegynder
16. oktober 2001 - 15:54 Der er 2 kommentarer og
1 løsning

ASPMailer og checkbokse

Det jeg prøver er at lave en side hvor man har mulighed for at sende en mail ud til alle der har indtastet en e-mail i deres profil, men hvis man nu ikke ønsker at alle skal have mailen, skal det være muligt kun at tjekke dem af der skal modtage mailen, men jeg kan ikke finde ud af hvordan jeg får den til at tage alle de email adresser der er sat hak ved.

Siden hvor man skriver mailen ser således ud:

<% response.buffer = true %>
<%
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"../database/VAG/bruger.mdb\")
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open strDSN
%>
<%
sql2 = \"SELECT * FROM persondata Where email <> null ORDER BY name;\"
Set Ns = conn.Execute (sql2)
%>
<html>

<head>
<title>Mail</title>
<br><br>
</head>

<body>
<form action=\"sendmail.asp\" METHOD=\"POST\">
  <input type=\"hidden\" name=\"mode\" value=\"send\">
  <div align=\"center\">
    <table summary=\"post\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"85%\" bgcolor=\"#A6CAF0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" height=\"316\">
    <tr> 
      <td ALIGN=\"LEFT\" height=\"43\">&nbsp;</td>
      <td ALIGN=\"LEFT\" height=\"43\">
      <div align=\"left\"><b>Marker hvem du ønsker skal modtage din mail: </b>
      <% Do While Not Ns.EOF %>
        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber1\">
          <tr>
            <td width=\"10%\"><input type=\"checkbox\" name=\"<%=ns(\"id\")%>\" value=\"ON\"></td>
            <td width=\"90%\"><%=ns(\"name\")%></td>
          </tr>
        </table>
              <%
        Ns.MoveNext
    Loop
    Conn.Close
    Set Conn = Nothing
    %>
      </div>
      </td>
    </tr>

    <tr> 
      <td ALIGN=\"LEFT\" height=\"18\"><b>Emne </b> </td>
      <td ALIGN=\"LEFT\" height=\"18\"><input TYPE=\"TEXT\" NAME=\"subject\" class=\"text\" SIZE=\"50\"> </td>
    </tr>
    <tr>
      <td ALIGN=\"left\" VALIGN=\"TOP\" height=\"244\"><b>Tekst:&nbsp; </b> </td>
      <td ALIGN=\"LEFT\" height=\"244\"><textarea COLS=\"50\" ROWS=\"15\" NAME=\"tekst\" class=\"text\" wrap=\"PHYSICAL\"></textarea> </td>
    </tr>
    <tr>
      <td ALIGN=\"LEFT\" height=\"65\">
      <input type=\"image\" src=\"../billeder/send.gif\" width=\"61\" height=\"61\" alt=\"Send Mail\"> </td>
      <td height=\"65\">&nbsp; </td>
    </tr>
  </table>
    </center>
  </div>
</form>

</body>

</html>


Og siden der bliver henvist til ser således ud:

<%
Response.Buffer = True

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"../database/vag/bruger.mdb\")
action = Request.QueryString(\"action\")
%>

<%
        SQL = \"SELECT * FROM persondata WHERE id LIKE \" & session(\"usrID\") & \";\"
        set sender = conn.execute( SQL )
       
        Set Mailer = Server.CreateObject(\"SMTPsvg.Mailer\")
        Mailer.FromName = sender(\"name\")
        Mailer.FromAddress= sender(\"email\")
        \' This is my local SMTP server
        Mailer.RemoteHost = \"mail.keka.dk\"
        Mailer.AddRecipient send(\"Name\"), send(\"Email\")
        Mailer.CharSet = 2
        Mailer.Subject = request.form(\"subject\")
        Mailer.BodyText = request.form(\"tekst\")
        Mailer.Priority = 1
        Mailer.SendMail
       
        Set Mailer = Nothing

response.write \"<h4>Meddelelse er sendt til : \"& send(\"name\") &\"<br>\"
send.movenext
loop
conn.close
%>

Håber der er nogen der kan hjælpe mig.
Avatar billede eagleeye Praktikant
16. oktober 2001 - 16:04 #1
Jeg vil lave checkboks sådan her:

<input type=\"checkbox\" name=\"sendtil\" value=\"<%=ns(\"id\")%>\">

Og siden der bliver henvist til ser således ud:

strIDsendtil = Request.Form(\"sendtil\")
\' strIDsendtil indeholder ID på alle den du har valgt at sende til via checkboxne.

sql = \"SELECT * FROM persondata WHERE ID IN (\" & strIDsendtil & \");\"

set sender = conn.execute( SQL )
\'Ny har du et recordset med alle dem du skal sende til. Du kan loope gennem recordsetet


Hvis der er JMail kan du benytte
do while not send.EOF
  Mailer.AddRecipientBCC send(\"Name\"), send(\"Email\")
  send.Movenext
loop

Hvis du bruger BCC er ser modtageren kun han selv som modtager og ikke 200 andre.
Husk på der er en fejl i Jmail som gøre at den kun kan send 20 mail af gangen.
Avatar billede eagleeye Praktikant
16. oktober 2001 - 20:31 #2
hmmm jeg har vist ikke læst så godt du bruger jo ASPMail ikke JMail. Det er vist nok samme måde man tilføjer BCC: Mailer.AddRecipientBCC.
Avatar billede moejensen Nybegynder
17. oktober 2001 - 12:37 #3
det virker jo suverent, tusind tak for hjælpen
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