Jag har en databas med en massa mailadresser, hur gör jag för att skicka ett nyhetsbrev till alla med Jmail. Varken Jmail eller CDONTS.NewMail är optimerade för massutskick men jag har använt både till att skicka ut mellan 10 till 100 mail och det fungerar. Det gäller att se upp så man inte får en loop som bara kör och kör för då kan du börja kalla dig "UNA-Bombaren". Det funkar att skicka, men den skickar alltid två till den som ligger först i databasen varför? Spelar ingen roll den skickar fortfarande två till den som ligger överst, vad kan det bero på? Kommentera bort din kod så att du för detta kvar. Prova att initiera komponenten innan för loopen istället Hej JW!Jmail + Access
Vore tacksam för kod exempel!
Jag har kollat på dimac.se men dom har inga bra exempel på hur man hanterar Access och Jmail tillsammans...
//JWSv: Jmail + Access
Skrev detta "on the fly" så det kan finnas buggar. Testa den ordentligt innan du kör.
<code>
hämta alla användarnas emailadress och placera dessa i ett recorset
rs.open sSQL,Conn,3
Initiera Jmail komponenten
Set JMail = Server.CreateObject ("JMail.SMTPMail")
JMail.ServerAddress = "mail.domain.com"
JMail.Sender = "enAdress@domain.com"
do until rs.eof or rs.bof
'kolla så att det är en "korrekt" adress. Du får en liten bättre koll än denna kanske
if instr(rs("email"),"@") Then
intNumMail = intNumMail + 1
'godkänd adress
JMail.AddRecipient rs("email")
JMail.Subject = "Ämne på mailet"
Body = "Själva mailet"
Jmail.body = body
'skicka mailet
JMail.Execute
end if
rs.movenext
loop
JMail.Close
'stäng databaskopplingen
rs.close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Response.Write intNumMail & " st mail skickades"
</code>
/PutteSv: Jmail + Access
Så här ser min kod ut nu:
<code>
subject=Request.Form("subject")
message=Request.Form("message")
Server.ScriptTimeout=300
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "adress"
JMail.Sender = "info@sadf.se"
JMail.SenderName ="jag"
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/admin/databas/db1.mdb")
SQL = "SELECT mail FROM mail_list"
rs.Open SQL, MinCon, 1, 2
Do While Not rs.EOF
if instr(rs("mail"),"@") Then
intNumMail = intNumMail + 1
End if
JMail.AddRecipient rs("mail")
JMail.Subject = subject
Jmail.body = message
JMail.Execute
rs.MoveNext
Loop
JMail.Close
rs.close
Set rs = Nothing
MinCon.Close
Set MinCon = Nothing
Response.Write intNumMail & "skickades"
</code>Sv: Jmail + Access
//JWSv: Jmail + Access
<code>
Do While Not rs.EOF
Response.Write rs("mail") & "<br>"
rs.MoveNext
Loop
rs.close
Set rs = Nothing
MinCon.Close
</code>
Kolla sedan vad du får ut...
//PutteSv: Jmail + Access
<code>
do until rs.eof or rs.bof
Set Jmail......
........
........
JMail.Execute
JMail.Close
rs.movenext
loop
</code>
//Putte
Sv: Jmail + Access
Vore kul att se hur den fungerande koden blev till slut då jag inte riktigt hänger med i förkortningarna av texten.
Hälsningar Haze