Sök lite på "loading" och liknande samt "response.flush"
Här är ett exempel: http://www.webforum.nu/showthread.php?s=&postid=631128#post631128
7 svar · 489 visningar · startad av Bjarne A
Skulle vilja att sidan kommer upp medan Jmail skickar iväg alla mailen
(Måste lopa igenom den då man har olika innhåll till var och en)
Som det är nu så står sidan som man skickar ifrån och "tuggar" någon sekund
och sedan ploppar resultatet upp på skickasidan
Tror att när det blir mer än mina 60 testmail typ 250 eller så så kommer
den som skall använda sidan att undra om det funkar och kanska klicka skicka igen eller stänga ner sidan
Kan man inte få sidan att komma upp där står "börjar skicka mailen" innan det är färdigt
Sökt här på WF efter fördröjning men men den kod jag hittade funkade inte
<html>
<head>
<title>skickasidan2</title>
</head>
<body bgcolor="#FFFF99">
<table width="600" border="0" cellspacing="0" cellpadding="5">
<tr bgcolor="#99FF99">
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="3">Börjar skicka
mailen...</font><BR><BR>
<% set connect = server.createobject("ADODB.connection")
connect.Open "DBQ=" & server.mappath("db/dbk.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"
%> <%
Dim raknare
raknare = 0
SQL = "SELECT * FROM EmailTable ORDER BY ID DESC"
set rs = connect.execute(SQL)
Do until Rs.EOF
intCnt = intCnt + 1
mintext = RS("EmailField")
random = RS("randomnr")
raknare = raknare + 1
tillstrang = "?"
helalanken = "http://wse98874.ta30.talkactive.net/avboka_maillista.asp" & tillstrang & "adr=" & mintext & "&idn=" & random
dim JMail
Set JMail = Server.CreateObject ("JMail.SMTPMail")
JMail.ServerAddress = "localhost"
JMail.Sender = request.form("avsandare")
JMail.Subject = "Nyhetsmail från www.brf-godhem.se - " & request.form("rubriken")
JMail.AddRecipient mintext
JMail.Body = request.form("texten") & vbCrLf &_
vbCrLf &_
vbCrLf &_
"Du kan avboka alla nyhetsmail från www.brf-godhem.se genom att klicka på länken nedan" & vbCrLf &_
helalanken
JMail.Execute
Response.Write mintext & " "
Rs.MoveNext
Loop
rs.close
set rs = nothing
%> <BR><BR>
<font face="Verdana, Arial, Helvetica, sans-serif" size="3">...Klart</font><font face="Verdana, Arial, Helvetica, sans-serif" size="4"><BR>
<font size="3">Det skickades iväg</font> <%Response.Write raknare %> <font size="3">mail</font></font><font face="Verdana, Arial, Helvetica, sans-serif" size="7">
</font> </td>
</tr>
</table>
</body>
</html>
Sök lite på "loading" och liknande samt "response.flush"
Här är ett exempel: http://www.webforum.nu/showthread.php?s=&postid=631128#post631128
Tack! bra med sökhjälp :-)
I mitt exempel får man tänka på lite basic html... att tabeller inte visas fören innehållet är hämtat
1300 mail ska ut snabbt
Jag bryter in med en följdfråga som rör sig i ungefär samma trakter som Bjarnes...
Jag har, under några dagar nu, brottats med JMail och dess prestanda. Ca 1300 mail ska skickas när en användare klickar på den magiska skicka-knappen men trots att jag skickar iväg det hela som en template med ett RS i släptåg samt queue:ar raskedasket på mailservern (som JMail önskar) så tar det runt 30 sekunder. Hur kan man snabba upp skickandet? Gör jag något fel?
Dim msgTemplate, mMerge
set msgTemplate = Server.CreateObject( "JMail.Message" )
msgTemplate.From = MailSenderAddress
msgTemplate.FromName = MailSenderName
msgTemplate.AddRecipient "%%strMail%%", "%%strNamn%%"
msgTemplate.Subject = "Mailrubriken"
msgTemplate.appendtext "Mailbodyn"
set mMerge = Server.CreateObject( "JMail.MailMerge" )
mMerge.MailTemplate = msgTemplate
mMerge.BulkMerge RS, true, "g:\pickup"
Allt fungerar som sagt var precis som det ska.... förutom att användaren blir tvungen att vänta i 30 sekunder och så kan man ju inte ha det. Kunden blir ju skogstokig om jag presenterar en sådan lösning... :bla
HEJ!
Välkommen till wF! :bire
Tyvärr tror jag inte du kan göra något åt det, har själv samma erfarenhet. När jag började använda MailMerge trodde jag att den postade breven till servern, som sedan skickade, dvs webbläsaren skulle vara upptagen i 5-10 sek, sedan gör epostservern resten i pickup directory.
Men, så blev det inte! Det tar tid, och eftersom jag hade så många (ca 13000) till sist, och inte ville att webbläsaren skulle jobba utan att man ser vad som händer, delade jag upp den att skicka i intervall på runt 2000 st i taget genom första bokstaven i namnen.
I ett annat fall har jag några tusen, men de skickas alla på en gång, dvs webbläsaren är upptagen en stund, precis som du har det.
Annars ser det du gjort korrekt ut.
Halvlösning
Tack för välkomnandet!
Precis som du trodde jag att man kunde lyfta över en massa jobb från webbservern till mailservern men nu är vi 2 som bittert fått erfara att det inte går. Jag var inte speciellt glad när jag knatade hem igår men i morse kom jag på en lite kladdig workaround.
Sidan jag postar till innehåller en IFRAME (som ligger i en dold div) och till den sida skickar jag med alla parametrar. Sedan sköter den sidan om allt skickande men det syns ju inte för användaren. Allt ser bra ut men... du låser ändå upp systemet utan att det syns! Det är ju trots allt webbservern som jobbar och den måste jobba klart innan du kan förvänta dig att kunna hämta mer info. För min del funkar det halvhyfsat ändå eftersom jag hämtar rätt mycket information som användaren kan "leka med" innan jag kickar igång själva skickandet som låser upp systemet...
Förmodligen blir jag nog ändå i slutändan tvungen till att halvera antalet utskickade mail för att få fason på tidsaspekten men vi få se.
Ta en titt på komponenten ASPEmail (https://www.aspemail.com) och dess Queue-funktion.
Du skickar då bara själva mailet och avsändaren till en kö , så mailar ett program på servern ut alla mail.
Då slipper man en massa skumma lösningar och slipper belasta mailservern & webservern så mycket.
Förstår jag dig rätt att ASPEmail klarar biffen där JMail går bet? Vad är det för skillnad mellan ASPEmails köfunktion och JMails dito?