Avatar billede busschou Praktikant
22. juni 2004 - 21:34 Der er 10 kommentarer og
1 løsning

sende mails til flere fra database

Jeg har fundet et script som benytter JMAIL til at sende mails med.
Det virker fint hvis jeg selv indtaster diverse oplysninger direkte.
Men når jeg hiver ud fra en database for at sende til alle, så går det galt - og jeg aner ikke hvorfor.
Jeg har en form som jeg submitter, hvorefter min kode er:
-------------------------
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.SenderName = Request.Form("fraNavn")
JMail.Sender = Request.Form("fraMail")
JMail.Subject = Request.Form("emne")
JMail.Body = Request.Form("besked")
JMail.ServerAddress = "smtp.cliche.dk"
strSQL = "Select * From nyhedsbrev"
Set rs = Conn.Execute(strSQL)
Do
    JMail.AddRecipientBCC rs("Mail")
    rs.MoveNext
Loop While Not rs.EOF
JMail.Priority = 3
JMail.ContentType = Request.Form("format")
JMail.Charset = "ISO-8859-1"
JMail.Execute
JMail.Close
Set JMail = Nothing
-------------------------
Fejlmeddelelsen er :
-------------------------
jmail.SMTPMail error '8000ffff'

Win32 Error. Code: 87. The parameter is incorrect

/nyhedsbrev/mail.asp, line 88
-------------------------
Linje 88 er linjen med "JMail.Execute"
Avatar billede thesurfer Nybegynder
22. juni 2004 - 22:08 #1
Prøv det her:

' første del af koden her

dim strModtagere
Do

    strModtagere = rs("Mail") & ","
    rs.MoveNext
Loop While Not rs.EOF

strModtagere = left(strModtagere, len(strModtagere) - 1)

' resten af koden her
Avatar billede thesurfer Nybegynder
22. juni 2004 - 22:12 #2
rettelser:
dim strModtagere
strModtagere = "" ' for en sikkerhedsskyld
Do

strModtagere = strModtagere & ("Mail") & ","
'osv..
Avatar billede thesurfer Nybegynder
22. juni 2004 - 22:14 #3
nejnejnej!

sådan: strModtagere = strModtagere & rs("Mail") & ","

jeg ved ikke hvor det "rs" blev af.. :-)
Avatar billede busschou Praktikant
22. juni 2004 - 22:44 #4
Nu er  min kode så:
------------------
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.SenderName = Request.Form("fraNavn")
JMail.Sender = Request.Form("fraMail")
JMail.Subject = Request.Form("emne")
JMail.Body = Request.Form("besked")
JMail.ServerAddress = "smtp.cliche.dk"
strSQL = "Select * From nyhedsbrev"
Set rs = Conn.Execute(strSQL)
dim strModtagere
Do
    strModtagere = strModtagere & rs("Mail") & ","
    rs.MoveNext
Loop While Not rs.EOF
strModtagere = left(strModtagere, len(strModtagere) - 1)
Do
    JMail.AddRecipientBCC strModtagere
    rs.MoveNext
Loop While Not rs.EOF
JMail.Priority = 3
JMail.ContentType = Request.Form("format")
JMail.Charset = "ISO-8859-1"
JMail.Execute
JMail.Close
Set JMail = Nothing
------------------
Fejlen er nu:
-----------------
ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/nyhedsbrev/mail.asp, line 89
Avatar billede busschou Praktikant
22. juni 2004 - 22:46 #5
hov hov sådan her:
--------------Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.SenderName = Request.Form("fraNavn")
JMail.Sender = Request.Form("fraMail")
JMail.Subject = Request.Form("emne")
JMail.Body = Request.Form("besked")
JMail.ServerAddress = "smtp.cliche.dk"
strSQL = "Select * From nyhedsbrev"
Set rs = Conn.Execute(strSQL)
dim strModtagere
Do
    strModtagere = strModtagere & rs("Mail") & ","
    rs.MoveNext
Loop While Not rs.EOF
strModtagere = left(strModtagere, len(strModtagere) - 1)
JMail.AddRecipientBCC strModtagere
JMail.Priority = 3
JMail.ContentType = Request.Form("format")
JMail.Charset = "ISO-8859-1"
JMail.Execute
JMail.Close
Set JMail = Nothing
------------------
fejl:
-------------
jmail.SMTPMail error '8000ffff'

Win32 Error. Code: 87. The parameter is incorrect

/fdf/nyhedsbrev/mail.asp, line 91
som er JMAil.Execute
Avatar billede busschou Praktikant
22. juni 2004 - 22:53 #6
Hvis jeg udskriver enten strModtagere eller JMail.Recipients så får jeg den samme streng af kommaseparerede email adresser....bare info hvis du kan lure hvad der er galt :o)
Avatar billede busschou Praktikant
22. juni 2004 - 23:15 #7
Ok tror jeg har fundet min fejl. Jeg er ikke vant til ASP men en smule PHP
Det virker jo når jeg submitter formen!
Men første gang siden vises kommer den med en fejl om at JMail.Execute ikke kan bruges
Så problemet må være at koden udføres selv om formen ikke submittes
I php ville jeg havde skrevet noget med "If(isset("form))..." for at den gør det når jeg klikker på knappen
Hvordan gøres det i asp?
Avatar billede thesurfer Nybegynder
22. juni 2004 - 23:17 #8
ahhh... ja.. :-)

if request.servervariables("request_method") = "POST" then

' din kode

end if

husk at "POST" skal stå med stort..
Avatar billede busschou Praktikant
22. juni 2004 - 23:44 #9
Kanon tak for hjælpen :o)
Avatar billede thesurfer Nybegynder
22. juni 2004 - 23:45 #10
Jeg smider lige et svar :-)
(husk at markere navnet i boksen, inden du klikker på Accepter-knappen)
Avatar billede thesurfer Nybegynder
23. juni 2004 - 16:17 #11
Takker for points :-)
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