Avatar billede tue Nybegynder
12. februar 2002 - 23:28 Der er 7 kommentarer og
3 løsninger

Masseforsendelse via JMail

Har kigget en masse spørgsmål igennem her på eksperten, men har ikke fundet et svar jeg kunne acceptere som rigtig!

Jeg er i gang med at lave et system der skal kunne udsende flere hundrede mails/sms'er.

Jeg vil mene at når man sender til flere brugere via JMail, så skal man blot sætte et ; imellem adresserne så burde den sende til dem alle. Men det gør den tydeligvis ikke!

I de andre spørgsmål her på eksperten står der at man bare skal skrive jmail.addrecipient "din@mail.dk" for hver adresse man vil sende til, men det kan jo ikke passe at jeg skal lave 3000 jmail.addrecipient for at sende til 3000 adresser!

Håber i har en bedre løsning!

Mvh.
Tue Sandal
tue@qcom.dk
Avatar billede keysersoze Ekspert
12. februar 2002 - 23:43 #1
nu kender jeg ikke den præcise opbygning, men umiddelbart ville jeg bare forslå at køre en loop på et almindelig jmail script

do while...

'jmail

movenext
loop
Avatar billede tue Nybegynder
12. februar 2002 - 23:49 #2
Prøv at forstil dig en loop på 3000 adresse! Det er en meget dum ide og det tager meget lang tid, men tak for forslaget :)
Avatar billede erikjacobsen Ekspert
13. februar 2002 - 00:01 #3
Du bør jo generelt ikke bruge en webside til at afsende så
mange mails. Et program på din PC, med snablen nede i din
database, er langt at foretrække. Ingen HTTP-protokol, ingen
timeout, ....osv...
Avatar billede tue Nybegynder
13. februar 2002 - 00:19 #4
Ved godt at et program helt sikkert er at foretrække, men da kunden har bedt om at få det lavet på denne måde (jeg har forslået det med et program), så bliver jeg jo nød til at lave det via en webside.
Avatar billede erikjacobsen Ekspert
13. februar 2002 - 00:24 #5
Skørt - han vil sikkert få timeout, nogle mails, der ikke bliver
sendt, andre der bliver sendt to gange.

Du er på timeløn, håber jeg :)
Avatar billede hnteknik Novice
13. februar 2002 - 08:45 #6
Jeg har udsendt ca. 1400 mails ved at loope over hele jmail objekted som vist nedenfor. Man kan nok spare en hel del tid ved at holde objektet i luften og loope over execute delen. Men pga af en fejl i  Jmail, som smider hver 22' mail væk, skal man lukke forbindelsen efter mindst hver 20'ende mail - sådan noget som det her:

Henrik

-------------
For i = 1 to intCount
  If Not JMail.Execute Then
    Response.Write("ERROR MESSAGE: " & JMail.ErrorMessage & "<br>" & vbCrLf)
    Response.Write("ERROR SOURCE: " & JMail.ErrorSource & "<br>" & vbCrLf)
    Response.Write("LOG: <pre>" & JMail.Log & "</pre>" & vbCrLf)
  End If
  If CInt(i/20) = i/20 Then JMail.Close
Next

------- min nuværende kode ------
if (send.BOF Or send.EOF) then
                Response.write "<tr><td><center><h2>Ingen email-adresser er opfylder kriterie indtil videre!</h2></center></td></tr></table>"
            else
                Response.write"<tr><td><center>"
                Mailtype=1
                mailnr=1
                response.write "<h4>Meddelelse er sendt til : "  & "</h4><br>"
                Server.ScriptTimeout =300  ' Vi giver den 5 minutter - for 3000 mails nok 600 eller 900.
                do while not send.eof
                    Navn= send("Fulde_navn")
                    IDpas= send("brugernavn")
                    Email= Send("Emailad")
                    subject= Request("subject")
                       
                    BodyTextto = "Hej " & Navn & vbCrLf & vbCrLf & bodytext & vbCrLf & vbCrLf & "-----------------" & vbCrLf
                    BodyTextto = BodyTextto + "Denne mail er sendt fra xxx på www.yyy.dk" & vbCrLf
                    %>
                    <!--#include file="mailsend.asp" -->
                    <%
                    response.write "Mail nr: " & mailnr & " "& send("emailad") &"<br>"
                    send.movenext
                    IF mailnr mod 50=0 THEN
                        If response.isclientconnected()=false THEN
                            EXIT DO
                        END IF
                        response.write "</center></td></tr></table><table><tr><td><center>"
                        response.flush
                    END IF
                    mailnr = mailnr+1
                loop
                response.write "</center></td></tr></table>"
            end if
Avatar billede cesil Nybegynder
13. februar 2002 - 08:56 #7
Den her sender til et uendeligt antal modtagere, med kun en modtager i modtagerfeltet af gangen.

<%
Set oRs = oConn.Execute("SELECT Email, Name FROM Customers" )
   
set msgTemplate = Server.CreateObject( "JMail.Message" )
msgTemplate.Logging = true
msgTemplate.silent = true
msgTemplate.FromName = SenderName
msgTemplate.From = SenderEmail
msgTemplate.Subject = Subject
msgTemplate.HTMLBody = Message

Do While Not oRs.EOF
    msgTemplate.AddRecipientBCC ("" & oRs("Email") & "")
    oRs.movenext
loop

if not msgTemplate.Send( "mail.mailbox.dk" ) then
    Response.write "<pre>" & msgTemplate.log & "</pre>"
else
    Response.write "Message sent succesfully! <br>"
    Response.write overAtt
end if
%>


/Cesil
Avatar billede dalbjerg Nybegynder
15. februar 2002 - 16:02 #8
Hhvis din udbyder har købt jmail findes der en samrt funktion til det.  Kan ikke lige huske hva den hedder, men den står på jmails hjemmeside
Avatar billede hnteknik Novice
26. marts 2002 - 12:07 #9
>>tue

Luk lige sagen

Henrik
Avatar billede tue Nybegynder
26. marts 2002 - 18:16 #10
Ingen af overstående løsningen er brugelige systemet! Vi har udviklet et program til at gøre det. Men tak fordi i kom med jeres forslag :)
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