Avatar billede bmj Nybegynder
02. oktober 2001 - 11:12 Der er 38 kommentarer og
1 løsning

800 Point ? Mail hjælp....

Hejsa....

Så er der 800 point til den ekspert der kan hjælpe mig.

Jeg er nemlig begyndt af få problemer med mit mailingliste script... Der er snart over 3000 tilmeldte mail adresser og så mange kan scriptet ikke klare på en gang.

Derfor vil jeg godt have det lavet sådan at den kun udsender 40 mails af gangen og når de først er sendt så tager den de næste 40 mails i databasen osv... Er der en ekspert der kan klare det ? Eller har i en anden løsning der kan klare mit prøblem ?

Her er mit mailingliste script:

------KODE START-------

<HTML>
<HEAD>
<TITLE>Mailingliste</TITLE>
</HEAD>
<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">
<%
if request(\"mode\") = \"send\" then

mailertype = 1


Set Conn = Server.CreateObject(\"ADODB.Connection\")
conn.Open \"DBQ=\"&(Server.MapPath(\".\")) &\"\\mailing.mdb; DefaultDir=DBQ=\"&(Server.MapPath(\".\")) &\"\\;Driver={Microsoft Access Driver (*.mdb)};\"
    SQL = \"SELECT * from mailingliste\"
    set send = conn.execute( SQL )
    do while not send.eof
    on error resume next
if mailertype = 1 then
        Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
        JMail.ServerAddress = \"din.mail.server\"
        JMail.Charset = \"iso-8859-1\"
        JMail.ContentTransferEncoding = \"8bit\"
        JMail.Sender = \"afsenders emailadresse\"
        JMail.Subject = request(\"header\")
        JMail.AddRecipient send(\"email\")
        JMail.Body = request(\"tekst\")   
        JMail.Priority = 3
        JMail.Execute
        set JMail = nothing

end if

response.write \"<FONT FACE=\'Arial\' SIZE=\'2\' COLOR=\'#000000\'><STRONG>E-mail er sendt til : \"& send(\"email\") &\"</STRONG></FONT><BR>\"
send.movenext
loop
conn.close
else %>
<CENTER>
<TABLE BORDER=\"0\">
<form action=\"write_send.asp\" METHOD=\"POST\">
<INPUT TYPE=\"hidden\" NAME=\"mode\" VALUE=\"send\">
  <TR>
    <TD ALIGN=\"LEFT\">
    <FONT FACE=\"Arial\" SIZE=\"2\" COLOR=\"#000000\"><STRONG>
    Overskrift:&nbsp;
    </STRONG></FONT>
    </TD>
    <TD ALIGN=\"LEFT\">
    <INPUT TYPE=\"TEXT\" NAME=\"header\" SIZE=\"50\">
    </TD>
  </TR>
  <TR>
    <TD ALIGN=\"RIGHT\" VALIGN=\"TOP\">
    <FONT FACE=\"Arial\" SIZE=\"2\" COLOR=\"#000000\"><STRONG>
    Tekst:&nbsp;
    </STRONG></FONT>
    </TD>
    <TD ALIGN=\"LEFT\">
    <TEXTAREA COLS=\"45\" ROWS=\"15\" NAME=\"tekst\"></TEXTAREA>
    </TD>
  </TR>
  <TR>
    <TD ALIGN=\"LEFT\">
    &nbsp;
    </TD>
    <TD ALIGN=\"RIGHT\">
        <input type=\"submit\" value=\"-- SEND --\">
    </TD>
  </TR>
</FORM>
</TABLE>
</CENTER>

<center><a href=slet.asp>Slet bruger</a>
<% end if %>
</BODY>
</HTML>

-----KODE SLUT------

HJÆLP :-)
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:15 #1
Hvorfor kan det ikke klare så mange..???
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:15 #2
Bare tilføje
Set servertimeout = 100000000
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:16 #3
Okay det vil sige at der er faktis min mail server der ikke kan klare så mange mails på en gang....  Derfor ville jeg godt have det delt lidt op....
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:16 #4
Hvor skal Set servertimeout = 100000000 stå henne i scriptet ?
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:17 #5
Hvis den ikke er løst kl 16.00, så kan jeg hælpe dig..... Jeg kan ikke trylle fra den her computer...

-Anders
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:18 #6
Prøv efter

<%
Set servertimeout = 100000000


det kan godt være at 10000000 er lidt meget :o), så sæt det lidt ned til at det virker....

Det kan også godt være at du skal droppe \"Set\"..

-Anders
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:18 #7
Okay mange tak.... Hvis du kan løse den til mig senere i dag for du 1000 point....
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:19 #8
Hvad gør servertimeout ?  Hvilken funktion har den ?  Holder den en pause mellem hver mail der er udsendt ?
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:23 #9
Servertimeout gør at scripetet ikke går kold så hurtigt... Der er dog mange servere der har sat en begrænsning på, da man nemt kan belaste serveren unødvendigt på den måde.....

-Anders
Avatar billede Søren Bech Morsing Praktikant
02. oktober 2001 - 11:23 #10
Har du adgang til din egen server så lav scriptet som en vbs fil!
Avatar billede keysersoze Guru
02. oktober 2001 - 11:24 #11
på serveren er der en timeout - er en side (fx din mailfunktion) ikke udført inden serverens forudindstillede timeout - ja så stopper den med at udføre scriptet...

med Set servertimeout = 100000000 ændre man på den ene specifikke side timeout\'en og dermed gives der mere tid til scriptet for at blive udført og dermed er der en større chance for at alle mails bliver sendt
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:24 #12
Ok tak... Men jeg vender tilbage her i dag kl 16:00 hvis du har tid til at kigge lidt mere på det...
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:26 #13
--> SBK

Ja jeg har adgang til min egen server... Men jeg kan ikke VBS....
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:26 #14
*lol* @ a-torsten ...

Det er Server.ScriptTimeOut = 1000000000 ....

bmj, Server.ScriptTimeOut sætter hvor lang tid et script max. må være om at blive kørt. I sekunder.

Hvis du vil lave noget delay kan du bruge en løkke og DateDiff.

mailnumber = 1
  do while not send.eof
    on error resume next
      if mailertype = 1 then
        Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
        JMail.ServerAddress = \"din.mail.server\"
        JMail.Charset = \"iso-8859-1\"
        JMail.ContentTransferEncoding = \"8bit\"
        JMail.Sender = \"afsenders emailadresse\"
        JMail.Subject = request(\"header\")
        JMail.AddRecipient send(\"email\")
        JMail.Body = request(\"tekst\")   
        JMail.Priority = 3
        JMail.Execute
        set JMail = nothing
    end if

response.write \"<FONT FACE=\'Arial\' SIZE=\'2\' COLOR=\'#000000\'><STRONG>E-mail er sendt til : \"& send(\"email\") &\"</STRONG></FONT><BR>\"
send.movenext
mailnumber = mailnumber + 1
if (mailnumber mod 40) = 0 then
    timeout = dateadd(\"s\", 10, now)
    do: loop until now > timeout
end if
loop

det vil lave et 10 sekunders delay for hver 40 mails. Men så skal du huske at sætte Server.ScriptTimeOut = 100000000 eller deromkring.
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:26 #15
Hvis du gerne vil igang med en løsning, så prøv at lave noget paging..

Du kan jo også lave flere forskellige SQL-sætninger...

if request.querystring(\"min\") < 100 and request.querystring(\"min\") > 10
SQL = \"SELECT * from mailingliste Where id < 100 and id > 10\"
end if


Tror jeg.... har ikke testet, så jeg ved ikke om den virker...

-Anders
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:28 #16
Td.... Dont u LOL @ me.....

U bastard..... ;o)

-Anders
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:28 #17
DateDiff() var nok så meget sagt .. jeg ændrede mening undervejs *g* det er dateadd...
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:30 #18
a-torsten:> Ej altså ...

Set bruges til at sætte objekt referencer *G* eller i det hele taget referencer..

Set servertimeout = 10000000

vil nok give dig en fejl .. og hvis du fjerner \"Set\" vil du bare lave en variabel med tallet 1000000 i *lol*
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:32 #19
td..... Ok..... Det var Server.ScriptTimeOut .. Jeg gir mig....

Kan sku da egetnlig godt se det ulogiske i mit svar nu... Men jeg hjalp da lidt på vej...

-Anders

PS: Krejlum Nixus
Avatar billede Søren Bech Morsing Praktikant
02. oktober 2001 - 11:32 #20
hvis du kan asp vha vb script kan du også vbs scripting

For det er nøjagtig det samme

Gem din asp side som *.vbs

fjern <% og %>
så kan du eksekvere filen!
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:33 #21
a-torsten:> *GG* godtnok er jeg PHP\'er nu meeeen man glemmer jo ik helt ASP *G*
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:34 #22
Nå.. jeg vil sku smutte under dynen ... *gaaab*\'er .. ka i hygge jer ...
Avatar billede a-torsten Nybegynder
02. oktober 2001 - 11:36 #23
Ahh... Snyd... Så sidder vi andre her på skolebænken og så kan du bare sløve den....

Avatar billede gixmo Nybegynder
02. oktober 2001 - 11:42 #24
Det er Server.ScriptTimeOut = 1000000000 ....

bmj, Server.ScriptTimeOut sætter hvor lang tid et script max. må være om at blive kørt. I sekunder.

Hvis du vil lave noget delay kan du bruge en løkke og DateDiff.

mailnumber = 1
  do while not send.eof
    on error resume next
      if mailertype = 1 then
        Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
        JMail.ServerAddress = \"din.mail.server\"
        JMail.Charset = \"iso-8859-1\"
        JMail.ContentTransferEncoding = \"8bit\"
        JMail.Sender = \"afsenders emailadresse\"
        JMail.Subject = request(\"header\")
        JMail.AddRecipient send(\"email\")
        JMail.Body = request(\"tekst\")   
        JMail.Priority = 3
        JMail.Execute
        set JMail = nothing
    end if

response.write \"<FONT FACE=\'Arial\' SIZE=\'2\' COLOR=\'#000000\'><STRONG>E-mail er sendt til : \"& send(\"email\") &\"</STRONG></FONT><BR>\"
send.movenext
mailnumber = mailnumber + 1
if (mailnumber mod 40) = 0 then
    timeout = dateadd(\"s\", 10, now)
    do: loop until now > timeout
end if
loop

Avatar billede bmj Nybegynder
02. oktober 2001 - 11:43 #25
Hejsa A-Torsten,

Jeg tror skal det virker nu... Den sender i hvert faldet uden problemmer.... Tak for hjælpen...
Avatar billede parazite Nybegynder
02. oktober 2001 - 11:43 #26
gixmo : Hvad har du gang i?
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:45 #27
--> gixmo

Det er ligesom skrevet en gang før... Copy cat...
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:50 #28
1000 point for noget som ikke engang hjalp ?????? ER det ikke liiiiiige at overdrive ?
Avatar billede bmj Nybegynder
02. oktober 2001 - 11:52 #29
--> Tdaugaard

Jeg ville også have givet dig lidt point men du har ikke givet mig noget \"svar\" kun \"kommentar\" men jeg har bruget noget af det du skrev og noget af det a-torsten og nu virker mit script igen....
Jeg har lige prøvet at sende ud til 3000 bruger uden problemmer så der er da noget der har løst mit problem...
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 11:56 #30
bmj:> Jeg skrev kun en kommentar, ja .. jeg synes 800 point er for meget så derfor ville jeg ikke svare. Anyway, det kan kun væer mit der har hjulpet da a-torstens ikke funkede en disse (no offense, a-torsten)... men det er lige meget ...
Avatar billede bmj Nybegynder
02. oktober 2001 - 12:03 #31
tdaugaard:>  Sorry!
Avatar billede NanoQ Nybegynder
02. oktober 2001 - 12:07 #32
1000 point for et spørgsmål? - tjaahh... jeg mener det er grotesk...
Avatar billede bmj Nybegynder
02. oktober 2001 - 12:09 #33
nanoq:>  Vi har lige købt et firma og skulle for første gang i dag sende et nyhedsbrev ud til vores 3000 brugere... Men vores script virkede ikke... Derfor ville JEG gerne give 1000 point for at få en løsning... Nu virker det. Så det kan jeg da kun være glad for...
Avatar billede NanoQ Nybegynder
02. oktober 2001 - 12:12 #34
Yes... men var der kun sat f.eks. 60 point på spil, ville dit problem sansynligvis være lige så løst.

Der er ikke pæn brug af Eksperten at udlove så mange point for et spørgsmål.

Avatar billede bmj Nybegynder
02. oktober 2001 - 12:15 #35
nanoq:> Jeg gav kun 1000 point i en god mening... Jeg trode det var et stort arbejde der skulle laves men det var det åbenbart ikke...
Avatar billede NanoQ Nybegynder
02. oktober 2001 - 12:27 #36
bmj, Nu er jeg én af de personer der mener, at man så vidt muligt bør holde sig til de små retningslinier der er udstukket af Eksperten. F.eks. er der sat en default på 60 point for et svært spørgsmål. Et spørgsmål på bare 100 point, burde således kun gives til næsten UMULIGE opgaver. Skal vi meget højere op, mener jeg opgaven egentlig burde ligge under \"freelance\" og der skulle penge på bordet.

Men det er selvfølgelig bare MIN fortolkning. :)

NanoQ
Avatar billede Slettet bruger
02. oktober 2001 - 15:27 #37
Må jeg ikke få en kopi af databasen?
Avatar billede bmj Nybegynder
02. oktober 2001 - 15:29 #38
Avatar billede tdaugaard Nybegynder
02. oktober 2001 - 16:39 #39
bmj:> Du behøver ikke undskylde :-) Hvis jeg havde ment jeg burde have haft point havde jeg svaret istedet for at kommentere :-)
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