/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
mailing liste
Fra : Klaus Egebjerg


Dato : 01-04-02 14:52

Hej

Jeg sidder og er ved at lave en mailliste. Den er opbygget på den måde, at
når folk tilmelder sig, så bliver deres mailadresse kastet ind i en Access
2000 database. Hvilekt virker meget godt.

Nu sidder jeg så at laver et script der skal sende en mail til alle på
listen. Jeg kan kun få den til at sende til den første på listen, og kan
ikke for den til at gå videre.

Jeg tror mit problem er, at jeg ikke kan få placeret:

While Not rs.EOF
rs.MoveNext
Wend

men jeg har nu forsøgt at sætte dem forskellige steder men uden held. Nogle
ganger tages den sidste mail adresse.

Er der nogen der kan hjælpe ?

Klaus

Min kode ser således ud:

<%@ Language=VBScript %>
<HTML>
<%
Dim Conn
function OpenConn (DBName)

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.ServerVariables("PATH_TRANSLATED"),
instrrev(request.ServerVariables("PATH_TRANSLATED"), "\"))
Conn.Open "DBQ=" & ODBCpath & DBName & ";DefaultDir=" & ODBCpath &
";Driver={Microsoft Access Driver (*.mdb)}"

End function

OpenConn("opskrifter.mdb")

strQ = "SELECT Mail FROM Prove "
Set rs = Conn.Execute (strQ)

Select Case Trim(Request.Form("DO"))
Case "Afsend"
'While Not rs.EOF
set msg = Server.CreateOBject( "JMail.Message" )
msg.ContentType = "text/html"
msg.Logging = true
msg.silent = true
msg.From = "info@brygladen.dk"
msg.FromName = "Brygladen"
msg.AddRecipient rs("Mail")
msg.Subject = "Nyhedsmail fra Brygladen.dk"
msg.Body = "Jeg ville bare lige hej"
'rs.MoveNext
'Wend
if not msg.Send("mail.brygladen.dk") then
Response.write msg.log
else
'rs.MoveNext
'Wend

Response.Redirect ("takbestilling.htm")
end if

Case "Reset"
Response.Redirect ("katalog.asp")
End Select

'While Not rs.EOF

'Response.Write "</tr>" & vbCrLf
'rs.MoveNext
'Wend

rs.close
Conn.Close
Set rs = Nothing
set Conn = Nothing

'End select

Sub Sen(strSen)
Response.Write strSen
End Sub

Sen "<FORM METHOD=""POST"" ACTION="""
Sen Request.ServerVariables("SCRIPT_ name=form1") & """ id=form1>"

Sen "<TR>"
Sen "<TR>" & "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Afsend""> &nbsp;"
Sen "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Reset""> &nbsp;"
Sen "</FORM>"

%>




 
 
Torben Brandt (01-04-2002)
Kommentar
Fra : Torben Brandt


Dato : 01-04-02 15:37

Klaus Egebjerg wrote in dk.edb.internet.webdesign.serverside.asp:
> Hej
>
> Jeg sidder og er ved at lave en mailliste. Den er opbygget på den måde, at
> når folk tilmelder sig, så bliver deres mailadresse kastet ind i en Access
> 2000 database. Hvilekt virker meget godt.
>
> Nu sidder jeg så at laver et script der skal sende en mail til alle på
> listen. Jeg kan kun få den til at sende til den første på listen, og kan
> ikke for den til at gå videre.
>
> Jeg tror mit problem er, at jeg ikke kan få placeret:
>
> While Not rs.EOF
> rs.MoveNext
> Wend
>
> men jeg har nu forsøgt at sætte dem forskellige steder men uden held. Nogle
> ganger tages den sidste mail adresse.
>
> Er der nogen der kan hjælpe ?
Jeg vil i hvert fald gøre et forsøg

> Min kode ser således ud:
>
> <%@ Language=VBScript %>
> <HTML>
> <%

<snip - her åbnes forbindelse til database>

&gt;
&gt; strQ = "SELECT Mail FROM Prove "
&gt; Set rs = Conn.Execute (strQ)
&gt;
&gt; Select Case Trim(Request.Form("DO"))
&gt; Case "Afsend"
&gt; 'While Not rs.EOF
&gt; set msg = Server.CreateOBject( "JMail.Message" )
&gt; msg.ContentType = "text/html"
&gt; msg.Logging = true
&gt; msg.silent = true
&gt; msg.From = "info@brygladen.dk"
&gt; msg.FromName = "Brygladen"
&gt; msg.AddRecipient rs("Mail")
&gt; msg.Subject = "Nyhedsmail fra Brygladen.dk"
&gt; msg.Body = "Jeg ville bare lige hej"
&gt; 'rs.MoveNext
&gt; 'Wend
&gt; if not msg.Send("mail.brygladen.dk") then
&gt; Response.write msg.log
&gt; else
&gt; 'rs.MoveNext
&gt; 'Wend
&gt;
&gt; Response.Redirect ("takbestilling.htm")
&gt; end if
&gt;
&gt; Case "Reset"
&gt; Response.Redirect ("katalog.asp")
&gt; End Select
&gt;
&gt; 'While Not rs.EOF
&gt;
&gt; 'Response.Write "</tr>" & vbCrLf
&gt; 'rs.MoveNext
&gt; 'Wend
&gt;
&gt; rs.close
&gt; Conn.Close
&gt; Set rs = Nothing
&gt; set Conn = Nothing
&gt;
&gt; 'End select
&gt;

<snip - her er noget html-kode>

&gt; %>
>
Så vidt jeg kan se drejer det sig kun om den første CASE, hvor du har
"afsend".

Jeg kan ikke helt se om du vil sende én mail for hver modtager eller om eller
modtagerene skal i den samme mail.
Hvis du vil sende én mail i alt, så skal du være opmærksom på at alle
modtagere, kan se de andre email-adresser -> ikke godt. Så hvis du vil det,
så skal du sætte dem alle sammen som BCC-modtagere.

Hvis du vil sende én mail, så er det således:
Set msg = Server.CreateOBject( "JMail.Message" )
msg.ContentType = "text/html"
msg.Logging = true
msg.silent = true
msg.From = "info@brygladen.dk"
msg.FromName = "Brygladen"
msg.Subject = "Nyhedsmail fra Brygladen.dk"
msg.Body = "Jeg ville bare lige hej"
Set rs = [hent database-oplysninger]
While Not rs.EOF
msg.AddRecipient rs("Mail")
rs.MoveNext
WEnd
[send msg]

Hvis du vil sende én mail for hver, så er det sådan her:
Set rs = [hent database-oplysninger]
While Not rs.EOF
Set msg = Server.CreateOBject( "JMail.Message" )
msg.ContentType = "text/html"
msg.Logging = true
msg.silent = true
msg.From = "info@brygladen.dk"
msg.FromName = "Brygladen"
msg.Subject = "Nyhedsmail fra Brygladen.dk"
msg.Body = "Jeg ville bare lige hej"
msg.AddRecipient rs("Mail")
[send msg]
rs.MoveNext
WEnd

mvh Torben

NB Det ser ud til at du vil sende mailene, som HTML-mails. Men så skal du
være opmærksom på at det ikke er nok at sætte msg.ContentType, du skal også
gemme indholdet af mailen i msg.HtmlBody i stedet for msg.Body

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (01-04-2002)
Kommentar
Fra : Jørn Andersen


Dato : 01-04-02 16:19

On Mon, 1 Apr 2002 14:36:56 +0000 (UTC), Torben Brandt
<torben@actuar.dk> wrote:

Hej Torben,

Nu kender jeg ikke JMail specielt godt, men har du ikke glemt at lukke
objektet, inden du åbner det igen:

>Hvis du vil sende én mail for hver, så er det sådan her:
>Set rs = [hent database-oplysninger]
>While Not rs.EOF

Her åbner du (inde i en loop):
>Set msg = Server.CreateOBject( "JMail.Message" )
>msg.ContentType = "text/html"
>msg.Logging = true
>msg.silent = true
>msg.From = "info@brygladen.dk"
>msg.FromName = "Brygladen"
>msg.Subject = "Nyhedsmail fra Brygladen.dk"
>msg.Body = "Jeg ville bare lige hej"
>msg.AddRecipient rs("Mail")
>[send msg]
>rs.MoveNext

Her starter du lopen igen:
>WEnd

Og er det ikke også det, der er problemet (eller ét af dem) hos den
oprindelige spørger?

Good luck,
Jørn


--
Jørn Andersen,
Brønshøj

Klaus Egebjerg (01-04-2002)
Kommentar
Fra : Klaus Egebjerg


Dato : 01-04-02 17:39


"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:ibugauocp9u7hn6scclafttgib4b7kqkpj@4ax.com...
> On Mon, 1 Apr 2002 14:36:56 +0000 (UTC), Torben Brandt
> <torben@actuar.dk> wrote:
>
> Hej Torben,
>
> Nu kender jeg ikke JMail specielt godt, men har du ikke glemt at lukke
> objektet, inden du åbner det igen:
>
> >Hvis du vil sende én mail for hver, så er det sådan her:
> >Set rs = [hent database-oplysninger]
> >While Not rs.EOF
>
> Her åbner du (inde i en loop):
> >Set msg = Server.CreateOBject( "JMail.Message" )
> >msg.ContentType = "text/html"
> >msg.Logging = true
> >msg.silent = true
> >msg.From = "info@brygladen.dk"
> >msg.FromName = "Brygladen"
> >msg.Subject = "Nyhedsmail fra Brygladen.dk"
> >msg.Body = "Jeg ville bare lige hej"
> >msg.AddRecipient rs("Mail")
> >[send msg]
> >rs.MoveNext
>
> Her starter du lopen igen:
> >WEnd
>
> Og er det ikke også det, der er problemet (eller ét af dem) hos den
> oprindelige spørger?
>
> Good luck,
> Jørn
>
>
> --
> Jørn Andersen,
> Brønshøj

Nu har jeg fået det til at virke. Tak for hjælpen

Klaus



Torben Brandt (01-04-2002)
Kommentar
Fra : Torben Brandt


Dato : 01-04-02 18:03

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On Mon, 1 Apr 2002 14:36:56 +0000 (UTC), Torben Brandt
> <torben@actuar.dk> wrote:
>
> Hej Torben,
>
> Nu kender jeg ikke JMail specielt godt, men har du ikke glemt at lukke
> objektet, inden du åbner det igen:
>
> >Hvis du vil sende én mail for hver, så er det sådan her:
> >Set rs = [hent database-oplysninger]
> >While Not rs.EOF
>
> Her åbner du (inde i en loop):
> >Set msg = Server.CreateOBject( "JMail.Message" )
> >msg.ContentType = "text/html"
> >msg.Logging = true
> >msg.silent = true
> >msg.From = "info@brygladen.dk"
> >msg.FromName = "Brygladen"
> >msg.Subject = "Nyhedsmail fra Brygladen.dk"
> >msg.Body = "Jeg ville bare lige hej"
> >msg.AddRecipient rs("Mail")
> >[send msg]
> >rs.MoveNext
>
> Her starter du lopen igen:
> >WEnd

Jo, det er rigtig at man skal huske at lukke objektet (msg.close) når man
er færdig med at bruge det.
Det er jeg vist ret god til at glemme :)

> Og er det ikke også det, der er problemet (eller ét af dem) hos den
> oprindelige spørger?

Sådan læste jeg det nu ikke - måske ...

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste