Avatar billede frank74 Nybegynder
27. juni 2006 - 14:02 Der er 2 kommentarer og
1 løsning

Næste problem i ASPmail rækkefølgen.

Jeg har et lille problem med følgende scripts.

------------------------------------------------

<html>
<head>
<title>Send en testmail 2</title>
<meta name="Generator" content="Stone's WebWriter 4">
<link rel="stylesheet" type="text/css" href="../STYLE/style.css">
</head>
<body background="../IMAGES/startile.gif">

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../DATABASER/login.mdb")
Conn.Open DSN

strSQL = "Select * From Users Where MON = 'Ja'"
Set rs = Conn.Execute(strSQL)
%>
<br><br>
<h2>Send en testmail</h2>
<form action="send_test_script2.asp" method="post">
<table border="0">
<%
do while not rs.EOF
%>
<tr>
    <td><input type="checkbox" name="Check" value="<% =rs("Mail") %>"></td>
    <td width=150><font><% =rs("Firstname") & " " & rs("Lastname") %></font></td>
    <td><font><% =rs("Mail") %></font></td>
</tr>
<%
  rs.MoveNext
loop

rs.close
Conn.Close
Set Conn = Nothing
%>
</table>
<br><br>
    <font>Emne :</font><br>
  <input type="text" name="subject"></input><br><br>
  <font>Besked :</font><br><br>
  <textarea name="message" cols="60" rows="15"></textarea><br><br>
  <input type="submit" value="send">
  </form>
</body>
</html>


Ovenstående script lister en række brugere. Her kan man så sætte flueben ved dem man ønsker at sende mail til. Herefter udfylder man Emne og Besked og trykker på Send. Det hele bliver så behandlet i følgende script.

------------------------------------------------

<html>

<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" type="text/css" href="../STYLE/style.css">
<title>Send en testmail - script 2</title>
</head>

<body background="../IMAGES/startile.gif" text="#FFC600" link="#FFC600" vlink="#FFC600" alink="#975386">


<br><br>

<div style="text-align:center">
<font>
<%
Server.ScriptTimeOut = 30
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../DATABASER/login.mdb")
Conn.Open DSN
set mail = Conn.execute("select * from Users where UserID=" & session("UserID") & "")
afsender_mail = mail("Mail")
afsender_navn = mail("FirstName") & " " & mail("LastName")
mail.close
set mail=nothing
strSQL = "select * FROM Users where Mail='" & Request.Form("Check") & "'"

Set rs = Conn.Execute(strSQL)
Do
  Dim Mailer
  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  Mailer.FromName  = afsender_navn
  Mailer.FromAddress = afsender_mail
  Mailer.RemoteHost = "smtp.unoeuro.com"
  Mailer.AddRecipient rs("FirstName") & " " & rs("LastName"), rs("Mail")
  Mailer.Subject    = Request.Form ("subject")
  Mailer.BodyText  = "Hej" & " " & rs("FirstName") & " " & rs("LastName") & vbcrlf & vbcrlf & Request.Form ("message")

  ' Send e-mail og skriv status
  if Mailer.SendMail then
  Response.Write "Nyhedsbrev sendt til : " & rs("Mail") & "<br>"
  no = no + 1
  else
    Response.Write "Der skete en fejl: " & Mailer.Response
  end if
  Set Mailer = Nothing
  rs.MoveNext
Loop While Not rs.EOF

  ' When messages have been sent to all the users, exit
  Response.Write "<br>" & "<b>" & "Nyhedsbrev sendt til " & no & " bruger(e)." & "</b>"


%>
</font>
</div>


</body>

</html>

------------------------------------------------

Problemet består i at det hele kun virker når jeg sætter flueben ved 1 bruger. Sætter jeg flueben ved flere få jeg følgende fejl :

error '80020009'
/ADMIN/send_test_script2.asp, line 50

Linje 50 er følgende -> Mailer.AddRecipient rs("FirstName") & " " & rs("LastName"), rs("Mail")

Hjææælp. ;-)
Avatar billede Slettet bruger
28. juni 2006 - 09:31 #1
- det er fordi når du sætter flueben ved mere end én bruger indeholder din variabel fra dine checkboxes mere end én e-mail adresse... det kunne for eksempel så sådan her ud så: "mail1@mail.dk,mail2@mail.dk,mail3@mail.dk...osv..."
- så bliver vi nød til at lave en split for hvert komma som der er i din variablen fra dine checkboxes...
- sådan her:
<html>

<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" type="text/css" href="../STYLE/style.css">
<title>Send en testmail - script 2</title>
</head>

<body background="../IMAGES/startile.gif" text="#FFC600" link="#FFC600" vlink="#FFC600" alink="#975386">


<br><br>

<div style="text-align:center">
<font>
<%
Server.ScriptTimeOut = 30
mails = replace(request.form("Check")," ","")


if (mails<>"" AND isnull(mails)=False) then


' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../DATABASER/login.mdb")
Conn.Open DSN
set mail = Conn.execute("select * from Users where UserID=" & session("UserID") & "")
afsender_mail = mail("Mail")
afsender_navn = mail("FirstName") & " " & mail("LastName")
mail.close
set mail=nothing

strmails = split(mails,",")
for a=0 to ubound(strmails)
ToMail = strmails(a)
if ToMail<>"" then
strSQL = "select * FROM Users where Mail='" & ToMail & "'"

Set rs = Conn.Execute(strSQL)

  Dim Mailer
  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  Mailer.FromName  = afsender_navn
  Mailer.FromAddress = afsender_mail
  Mailer.RemoteHost = "smtp.unoeuro.com"
  Mailer.AddRecipient rs("FirstName") & " " & rs("LastName"), rs("Mail")
  Mailer.Subject    = Request.Form ("subject")
  Mailer.BodyText  = "Hej" & " " & rs("FirstName") & " " & rs("LastName") & vbcrlf & vbcrlf & Request.Form ("message")

  ' Send e-mail og skriv status
  if Mailer.SendMail then
  Response.Write "Nyhedsbrev sendt til : " & rs("Mail") & "<br>"
  no = no + 1
  else
    Response.Write "Der skete en fejl: " & Mailer.Response
  end if
  Set Mailer = Nothing
end if
next

  ' When messages have been sent to all the users, exit
  Response.Write "<br>" & "<b>" & "Nyhedsbrev sendt til " & no & " bruger(e)." & "</b>"
end if

%>
</font>
</div>


</body>

</html>
Avatar billede frank74 Nybegynder
29. juni 2006 - 12:29 #2
Sådan skal det gøres... Skriv et svar så du kan få dine point. :-)
Avatar billede Slettet bruger
29. juni 2006 - 18:39 #3
OK!

- her et svar

\Dan
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