Avatar billede scharbau Nybegynder
27. januar 2000 - 16:27 Der er 10 kommentarer

Send en mail ad gangen.

Hjælp til et array som sender en mail af gangen, istedet for 100 mail på en gang.
Jeg har ASPmail. på min server. Sådan ser det ud som jeg bruger nu. Det virker fint.MEN............

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = "mail.xxx.dk"
Mailer.FromName = "Fra"
Mailer.FromAddress = "xxx@xxx.dk"
'-------------------------------------------------
Set myconn = Server.CreateObject("ADODB.Connection")
myConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("mail.mdb")
SQL = "SELECT email FROM email"
Set rs = myconn.Execute(SQL)
While Not rs.EOF
Mailer.AddRecipient rs("email")
rs.Movenext
Wend
myconn.Close
Set myConn = Nothing
rs.close

Dette virker også når jeg skal sende nyhedsbrev men alle der får en mail kan se til hven
nyhedsbrevet også sendes til (ikke særligt smart).
Jeg har kikket på et eksempel fra Activeserverpages. men kan ikke få flg til at virke.

    Set myConn = Server.CreateObject("ADODB.Connection")
    myConn.Open tempConn
    strSQL = "SELECT Email FROM eMail"
    Set rs = myConn.Execute(strSQL)
    arrEmail = rs.GetRows()<-- Samler op i et array til senere udskrift-->
    myConn.Close
    Set myConn = Nothing

  Set objMailer = Server.CreateObject("ASPMail.ASPMailCtrl.1")
    For num = 0 to Ubound(arrEmail,2)
        strResult = objMailer.SendMail(strMailserver, arrEmail(0, num), strSender, strSubject, strMessage)
    Next
    Set objMailer = Nothing
    strMode = "messagessendt"

    '// Her sletter vi alt buffered output, og redirecter siden, med et parameter der fortæller at vi har sendt til listen
    Response.Clear
    Response.Redirect("mailliste.asp?mode=finish")
End If
%>
får bla. flg fejl.  Server.CreateObject Failed eller
Object not a collection: 'objMailer.SendMail'

Der er 300 point til den som kommer med en løsning der virker.
Avatar billede mike@work Praktikant
27. januar 2000 - 18:06 #1
***** CODE *****
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = "mail.xxx.dk"
Mailer.FromName = "Fra"
Mailer.FromAddress = "xxx@xxx.dk"
'-------------------------------------------------
Set myconn = Server.CreateObject("ADODB.Connection")
myConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("mail.mdb")

SQL = "SELECT email FROM email"
Set rs = myconn.Execute(SQL)

While Not rs.EOF

    Mailer.ToAddress = rs("email")
    Mailer.Body = "Kære " & rs("name") & " - DETTE ER EN TEST"
    Mailer.send

    rs.Movenext
Wend

myconn.Close
Set myConn = Nothing
rs.close
***** CODE *****

Nu er jeg ikke 100% sikker på at det er de rigtige felter (ToAddress og send), men princippet er det sådan du skal gøre... Alt det der skifter skal ind i løkken. F.eks. navn i body, email adresse osv....

Hvis du har noget documentation over dit mailobjekt, så har jeg en bedre mulighed for at hjælpe dig
Avatar billede scharbau Nybegynder
28. januar 2000 - 10:42 #2
Hej Mike. Dit forslag senden også mail til alle på en gang så andre modtager af mailen bliver vist i "sendes til".
Jeg har Aspmail 2 på severen.
http://www.serverobjects.com/comp/Aspmail2.htm
Det kan være at man skal lave en "BCC" på mailen
Avatar billede mike@work Praktikant
28. januar 2000 - 10:53 #3
Nej det syntes jeg ikke er nogen god ide !
Avatar billede mike@work Praktikant
28. januar 2000 - 11:01 #4
Ok - Jeg har kigge lidt på det link - Prøv det her inde i loopet:

Mailer.AddRecipient rs("email")
Mailer.Bodytext = "Kære " & rs("name") & " - DETTE ER EN TEST"
Mailer.sendmail
Mailer.ClearRecipients

Det er mit bud....

Avatar billede scharbau Nybegynder
28. januar 2000 - 13:24 #5
Mailer.ClearRecipients sletter alle modtager også dem der er i Rs.
Avatar billede mike@work Praktikant
28. januar 2000 - 13:29 #6
Mailer.ClearRecipients kan da ikke slette i databasen ?!?!?

Jeg er ikke helt med i hvad du mener....
Avatar billede scharbau Nybegynder
28. januar 2000 - 14:54 #7
Mailer.AddRecipient rs("email")
Mailer.Bodytext = "Kære " & rs("name") & " - DETTE ER EN TEST"
Mailer.sendmail
Mailer.ClearRecipients <--Her virker det som om at Recipients bliver slettet i Rs. Så der ikke er nogen modtager i Rs--> Men jeg prøver lige igen.
Avatar billede stingbat Nybegynder
29. januar 2000 - 13:09 #8
Når du vil sende en mail uden at andre skal kunne se de andre på mailinglistens e-mail adresse skal du i stedet bruge funktionen:

  Mailer.AddBCC

Denne funktion gør at mailen bliver sendt "skjult" for modtageren. BCC står for "Blind Carbon Copy"

Har har jeg ændret lidt på dit nuværende script så det skulle virke:

<%
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = "mail.xxx.dk"
Mailer.FromName = "Fra"
Mailer.FromAddress = "xxx@xxx.dk"
Mailer.AddRecipient "xxx-mailinglist", ""
Mailer.Subject = "*Beskrivelse*"
Mailer.BodyText = "*Indhold af det som skal sendes til mailinglisten*"
'-------------------------------------------------
Set myconn = Server.CreateObject("ADODB.Connection")
myConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("mail.mdb")
SQL = "SELECT email FROM email"
Set rs = myconn.Execute(SQL)
While Not rs.EOF
  Mailer.AddBCC "", rs("email")
rs.Movenext
Wend
myconn.Close
Set myConn = Nothing
rs.close

Mailer.sendmail
%>


Håber du kan få det til at virke... ellers kan du skrive tilbage til mig på stingbat@etype.dk

// Stingbat
Avatar billede stingbat Nybegynder
29. januar 2000 - 13:11 #9
Hvis du ellers får brug for mere info om ASPMail, så kan du prøve at kigge på http://www.serverobjects.com/comp/Aspmail3.htm

// Stingbat
Avatar billede icedox Nybegynder
24. oktober 2001 - 10:16 #10
Den her kan jeg ikke lide :
SQL = \"SELECT email FROM email\"
bedre sådan :
SQL = \"SELECT * FROM email\"
Så er det bedre at tage SQL først, og Jmail nr.2
hvor Mailer.FromAddress = rs(\"email\")

og så afslutter man Jmail
Jmail.execute
Jmail = nothing
Loop


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