/ 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
1 lille spørgsmål omkring en mailfåkker (m~
Fra : Morten Riis


Dato : 21-11-02 15:55

Halløj i mangen kloge ASPfolk.

Er der ikke en enkelt venlig sjæl af jer der kan fortælle mig hvad jeg gør
galt i nedenstående kode?

Mit problemer er:

Ved afsendelse fjernes indsatte mailadresser ikke fra msg.AddRecipient,
hvilket måske er naturligt nok, men aner bare ikke hvilken funktion jeg skal
bruge for at fjerne en modtager igen fra løkken.

Som det er nu laver scriptet mails hvor den første indsatte modtager
optræder i alle mails osv. Det er lidt træls kan man sige...!


-Morten


...:: Koden ::..
--------------------------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="open_db.asp" -->
<%
dim Conn, rs, msg, strSQL, subject, body, counter

IF Request.Form("Submit") = "Send" THEN

strSQL = "SELECT email FROM emails ORDER BY email ASC"
set rs = Conn.Execute(strSQL)

strSQL = "SELECT count(id) AS antal FROM emails"
set rs2 = Conn.Execute(strSQL)

DO UNTIL rs.EOF

' Create the JMail message Object
Set msg = Server.CreateOBject( "JMail.Message" )

' Set logging to true to ease any potential debugging
' And set silent to true as we wish to handle our errors ourself
msg.Logging = true
msg.silent = true

'Get data from form
subject = Request.Form("subject")
body = Request.Form("body")

'Enter the sender data
msg.From = "[mailadresse]"
msg.FromName = "[navn]"

'Enter subject and body
msg.Subject = subject
msg.Body = body

counter = 1
DO UNTIL counter = 20 OR rs.EOF
' Note that as addRecipient is method and not
' a property, we do not use an equals ( = ) sign
recipient = rs("email")
msg.AddRecipient recipient

IF NOT msg.Send("[mailserver]" ) THEN
Response.write "<pre>" & msg.log & "</pre>"
error = true
END IF

'Recipients.Clear

counter = counter + 1
rs.movenext


LOOP

msg.close

LOOP

IF error = false THEN Response.write rs2("antal") & " mails er sendt."


END IF

%>


<html>
<head>
<title>Skriv og send e-mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body onLoad="javascript:document.sendmail.subject.focus;">
<form action="sendmail.asp" method="post" name="sendmail">
Subject:
<br>
<input name="subject" type="text" id="e-mail" Style="Width:420px;">
<br><br>
Body:
<br>
<textarea name="body" cols="50" rows="10">


----------
Ønsker du at framelde dig mailinglisten kan det
gøres på xxx.
Du behøver bare at indtaste din e-mail og
trykke Afmeld.</textarea>
<br>

<br>
<input type="submit" name="Submit" value="Send">
</form>
</body>
</html>

<%
Conn.Close
Set Conn = Nothing
%>
---------------------------------



 
 
Jakob Andersen (21-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 21-11-02 16:06

"Morten Riis" <news_udenspam@riisweb.dk> wrote
> Ved afsendelse fjernes indsatte mailadresser ikke fra msg.AddRecipient,
> hvilket måske er naturligt nok, men aner bare ikke hvilken funktion jeg
skal
> bruge for at fjerne en modtager igen fra løkken.

Jeg vil tro at du skal bruge:

Set msg = Nothing

for at "nulstille" msg objektet.

--
Jakob Andersen



Morten Riis (22-11-2002)
Kommentar
Fra : Morten Riis


Dato : 22-11-02 01:03


"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:arist8$168d$1@news.cybercity.dk...
> "Morten Riis" <news_udenspam@riisweb.dk> wrote
> > Ved afsendelse fjernes indsatte mailadresser ikke fra msg.AddRecipient,
> > hvilket måske er naturligt nok, men aner bare ikke hvilken funktion jeg
> skal
> > bruge for at fjerne en modtager igen fra løkken.
>
> Jeg vil tro at du skal bruge:
>
> Set msg = Nothing
>
> for at "nulstille" msg objektet.

Tak Jakob - så virker det!

Men jeg har et spørgsmål i forlængelse til din hjælp.

Den tilrettede kode ses herunder, hvor der nu kun er én løkke. Er det
korrekt at det ikke er muligt at nulstille msg objektet i den "inderste"
løkke fra den første kode, i den første besked i tråden her? Hvorfor at
mailen og dens elementer skal oprettes og afsendes i kun én løkke?

Hvis ovenstående er korrekt, vil det så belaste serveren i højere grad når
der oprettes og lukkes mailobjekt for hver enkelt mail hvis der afsendes 50,
100, 1000 mails ud af gangen?


Venligst

-Morten


...:: Ny kode ::..

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="open_db.asp" -->
<%
dim Conn, rs, rs2, msg, strSQL, subject, body, counter

IF Request.Form("Submit") = "Send" THEN

strSQL = "SELECT email FROM emails ORDER BY email ASC"
set rs = Conn.Execute(strSQL)

strSQL = "SELECT count(id) AS antal FROM emails"
set rs2 = Conn.Execute(strSQL)

counter = 1
DO UNTIL counter = 20 OR rs.EOF

' Create the JMail message Object
Set msg = Server.CreateOBject( "JMail.Message" )

' Set logging to true to ease any potential debugging
' And set silent to true as we wish to handle our errors ourself
msg.Logging = true
msg.silent = true

'Get data from form
subject = Request.Form("subject")
body = Request.Form("body")

'Enter the sender data
msg.From = "mail@ufoyepha.dk"
msg.FromName = "Ufo Yepha"

'Enter subject and body
msg.Subject = subject
msg.Body = body

' Note that as addRecipient is method and not
' a property, we do not use an equals ( = ) sign
recipient = rs("email")
msg.AddRecipient recipient

IF NOT msg.Send("xxx" ) THEN
Response.write "<pre>" & msg.log & "</pre>"
error = true
END IF

counter = counter + 1
rs.movenext

Set msg = Nothing
Set recipient = Nothing
'msg.close

LOOP

IF error = false THEN Response.write rs2("antal") & " mails er sendt."


END IF

%>


<html>
<head>
<title>Skriv og send e-mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body onLoad="javascript:document.sendmail.subject.focus;">
<form action="sendmail2.asp" method="post" name="sendmail">
Subject:
<br>
<input name="subject" type="text" id="e-mail" Style="Width:420px;">
<br><br>
Body:
<br>
<textarea name="body" cols="50" rows="10">


----------
Ønsker du at framelde dig mailinglisten kan det
gøres på xxx .
Du behøver bare at indtaste din e-mail og
trykke Afmeld.</textarea>
<br>

<br>
<input type="submit" name="Submit" value="Send">
</form>
</body>
</html>

<%
Conn.Close
Set Conn = Nothing
%>



Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408538
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste