23. maj 2002 - 22:29
Der er
33 kommentarer og 1 løsning
E-mail og db
Hejsa ... Jeg har en database med en tabel der hedder Bruger. I denne er der følgende kolonner: Brugernavn Gruppenavn Brugerkode Email Initial Fornavn Efternavn Hvordan laver jeg en asp side som jeg kan køre, som så går ind og sender en mail til hver enkelt i databasen med deres oplysninger og ikke de andres, de skal altså bare have tilsendt deres egne brugernavn, gruppenavn, brugerkode, initial, fornavn samt efternavn. Og det hele skal gøres automatisk ved bare at åbne siden! Jeg giver de 200 point til den som smider asp koden som jeg skal bruge til det!
Annonceindlæg fra gavdi
hvilken mail-komponent har du adgang til?
lad os se engang ;) Det er access, right? Det fixer jeg.
strSQL = "SELECT * FROM bruger" Set dbConnection = Server.CreateObject("ADODB.Connection") Set rsRecordSet = Server.CreateObject("ADODB.RecordSet") dbConnection.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=e:\domains\\user\htdocs\db\database.mdb;UID=admin;PWD=" rsRecordSet.Open strSQL, dbConnection, 1, 2 do while not rsRecordSet.EOF set JMail = server.createobject("JMail.SMTPMail") JMail.sender = "dig@dinserver.com" JMail.SenderName = "Dit Navn" JMail.subject = "Emne" JMail.AddRecipient rsRecordSet("Email") JMail.ContentType = "text/plain" JMail.body = "Hej,"&VbCrLf&""&VbCrLf&"Dit kodeord er: "&rsRecordSet("Brugerkode")&""&VbCrLf&"Gruppekode: "&rsRecordSet("Gruppekode")&""&VbCrLf&"Navn: "&rsRecordSet("Fornavn")&" "&rsRecordSet("Efternavn")&""&VbCrLf&"Initial: "&rsRecordSet("Initial")&""&VbCrLf&""&VbCrLf&"MVH"&VbCrLf&"~Mig" JMail.priority = 1 JMail.maildomain = "ditdomæne.com" JMail.silent = true JMail.execute JMail.close() rsRecordSet.movenext loop rsRecordSet.Close dbConnection.Close Set rsRecordSet = Nothing Set dbConnection = Nothing
det her er vel og mærke hvis du har JMAIL. Hvis du har CDONT's, bliver det: strSQL = "SELECT * FROM bruger" Set dbConnection = Server.CreateObject("ADODB.Connection") Set rsRecordSet = Server.CreateObject("ADODB.RecordSet") dbConnection.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=e:\domains\\user\htdocs\db\database.mdb;UID=admin;PWD=" rsRecordSet.Open strSQL, dbConnection, 1, 2 do while not rsRecordSet.EOF body = "Hej,"&VbCrLf&""&VbCrLf&"Dit kodeord er: "&rsRecordSet("Brugerkode")&""&VbCrLf&"Gruppekode: "&rsRecordSet("Gruppekode")&""&VbCrLf&"Navn: "&rsRecordSet("Fornavn")&" "&rsRecordSet("Efternavn")&""&VbCrLf&"Initial: "&rsRecordSet("Initial")&""&VbCrLf&""&VbCrLf&"MVH"&VbCrLf&"~Mig" objCDO.To = rsRecordSet("email") objCDO.From = "dinemail"lknbdwg.sdf" objCDO.Subject = "Emne" objCDO.Body = body objCDO.Send rsRecordSet.movenext loop rsRecordSet.Close dbConnection.Close Set rsRecordSet = Nothing Set dbConnection = Nothing
du skal selvfølgelig selv ændre stigen til din database, da jeg ikke ved hvor den ligger. Din mail server skal du også selv skrive ind etc...
hallo tblaster!? Kan du bruge det her?
tuctoh ... jeg får først lige tid til at checke det i morgen. Til din oplysning ligger hotellet på cliches server og jeg ved ikke hvad de understøtter af mail system. Deres adresse er:
www.cliche.dk
du skal bruge det første af exemplerne jeg gav; du har JMAIL hos din server.
Når jeg køre med den øverste som du skrev så får jeg følgende fejl: HTTP 500 - Intern serverfejl Sådan har jeg at min side op: <% strSQL = "SELECT * FROM bruger" Set dbConnection = Server.CreateObject("ADODB.Connection") Set rsRecordSet = Server.CreateObject("ADODB.RecordSet") dbConnection.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=login.mdb;UID=admin;PWD=" rsRecordSet.Open strSQL, dbConnection, 1, 2 do while not rsRecordSet.EOF set JMail = server.createobject("JMail.SMTPMail") JMail.sender = "mail.just2funny.dk" JMail.SenderName = "Dit Navn" JMail.subject = "Emne" JMail.AddRecipient rsRecordSet("Email") JMail.ContentType = "text/plain" JMail.body = "Hej,"&VbCrLf&""&VbCrLf&"Dit kodeord er: "&rsRecordSet("Brugerkode")&""&VbCrLf&"Gruppekode: "&rsRecordSet("Gruppekode")&""&VbCrLf&"Navn: "&rsRecordSet("Fornavn")&" "&rsRecordSet("Efternavn")&""&VbCrLf&"Initial: "&rsRecordSet("Initial")&""&VbCrLf&""&VbCrLf&"MVH"&VbCrLf&"~Mig" JMail.priority = 1 JMail.maildomain = "just2funny.dk" JMail.silent = true JMail.execute JMail.close() rsRecordSet.movenext loop rsRecordSet.Close dbConnection.Close Set rsRecordSet = Nothing Set dbConnection = Nothing %>
Gå op i funktioner > inernetinstillinger > avanceret og fjern krydset fra "vis medd om uskadelige HTTP fejl". Kør filen igen, og sig mig hvad for en fejl du får.
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x394 Thread 0x558 DBC 0x9902024 Jet'. /login/send.asp, line 5
dbConnection.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=login.mdb;UID=admin;PWD=" prøv og se om du har stavet det hele rigtigt der.... Det er der fejlen ligger vil jeg tro. Ellers, skriv lige hvad linie 5 er :)
Linje 5 er den som du kan se i min overstående besked: dbConnection.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=login.mdb;UID=admin;PWD="
Min database hedder: Login.mdb
I mine andre filer bruger jeg følgende til at logge ind i databasen: Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" Tror du ikke vi skal have fat i noget af det? Jeg har ikke brug for kode og alt mulig på min database!
Bruger jeg følgende: strSQL = "SELECT * FROM bruger" Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" rsRecordSet.Open strSQL, dbConnection, 1, 2 Får jeg følgende fejl: Object required: 'rsRecordSet'
Og følgende: strSQL = "SELECT * FROM bruger" Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset") Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" rs.Open SQL, Conn Giver denne fejl: Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
så åben din database som du plejer; det betyder ikke det mindste! Her kalder jeg bare mit recordset "rsRecordSet", men du kan kalde det hvad du vil... hvor du normalt skriver Rs, skal du her skrive "rsRecordSet". Det er bare 2 forskellige navne vi bruger. Det vil sige. Du skal ændre: strSQL = "SELECT * FROM bruger" Set dbConnection = Server.CreateObject("ADODB.Connection") Set rsRecordSet = Server.CreateObject("ADODB.RecordSet") dbConnection.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=e:\domains\\user\htdocs\db\database.mdb;UID=admin;PWD=" rsRecordSet.Open strSQL, dbConnection, 1, 2 til hvordan du normalt ville åbne en forbindelse til databasen, med SQL-sætningen "SELECT * FROM bruger". Burde ikke være et problem :)
Har ændret det hele til: <% Set Conn = Server.CreateObject("ADODB.Connection") Set rsRecordSet = Server.CreateObject("ADODB.Recordset") Conn.Open "DBQ=" & Server.Mappath("Login.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" SQL = "SELECT Brugernavn, Email, Brugerkode, nitial, Fornavn, Efternavn FROM Bruger" rsRecordSet.Open SQL, Conn do while not rsRecordSet.EOF set JMail = server.createobject("JMail.SMTPMail") JMail.sender = "mail.just2funny.dk" JMail.SenderName = "Dit Navn" JMail.subject = "Emne" JMail.AddRecipient rsRecordSet("Email") JMail.ContentType = "text/plain" JMail.body = "Hej,"&VbCrLf&""&VbCrLf&"Dit kodeord er: "&rsRecordSet("Brugerkode")&""&VbCrLf&"Gruppekode: "&rsRecordSet("Gruppekode")&""&VbCrLf&"Navn: "&rsRecordSet("Fornavn")&" "&rsRecordSet("Efternavn")&""&VbCrLf&"Initial: "&rsRecordSet("Initial")&""&VbCrLf&""&VbCrLf&"MVH"&VbCrLf&"~Mig" JMail.priority = 1 JMail.maildomain = "just2funny.dk" JMail.silent = true JMail.execute JMail.close() rsRecordSet.movenext loop rsRecordSet.Close dbConnection.Close Set rsRecordSet = Nothing Set dbConnection = Nothing %> Det giver følgende fejl: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Kom lige til at se at jeg havde glemt et i i initial i min sql ... nu får jeg følgende fejl ved kørelse af koden: Object required: 'dbConnection'
rsRecordSet.Close dbConnection.Close Set rsRecordSet = Nothing Set dbConnection = Nothing skal så være: rsRecordSet.Close Conn.Close Set rsRecordSet = Nothing Set Conn = Nothing
Emailene burde blive sendt ud nu..
Selvom jeg får en fejl så sender den faktisk en mail men kun til den øverste i databasen og ikke til alle de andre :-(
hvad for en fejl får du da nu?
Ændre jeg det som du skrev så kommer der ingen fejl men den sender stadig kun en mail til den øverste i databsen og ikke til alle de andre :-(
hmm... Er du sikker på at alle de andre adresser virker? Ellers kan du (kun mens du tester) sætte linie: JMail.silent = true til JMail.silent = false og du vil få en fejl-meddelelse, hvis mailen ikke blev sendt. Gør det, og se om der står noget.
Den giver følgende: 501 Error parsing from address: mail.just2funny.dk
nåå... Den blok der sender mailen skal ændres til: set JMail = server.createobject("JMail.SMTPMail") JMail.sender = "webmaster@just2funny.dk" JMail.SenderName = "tblaster" JMail.subject = "Emne" JMail.AddRecipient rsRecordSet("Email") JMail.ContentType = "text/plain" JMail.body = "Hej,"&VbCrLf&""&VbCrLf&"Dit kodeord er: "&rsRecordSet("Brugerkode")&""&VbCrLf&"Gruppekode: "&rsRecordSet("Gruppekode")&""&VbCrLf&"Navn: "&rsRecordSet("Fornavn")&" "&rsRecordSet("Efternavn")&""&VbCrLf&"Initial: "&rsRecordSet("Initial")&""&VbCrLf&""&VbCrLf&"MVH"&VbCrLf&"~Mig" JMail.priority = 1 JMail.maildomain = "mail.just2funny.dk" JMail.silent = true JMail.execute JMail.close()
Sådan skal det bare gøres ... men der er en ting som jeg stadig ikke forstår ... hvor har du fået fat i at der skal være noget med Gruppekode i mailen :-D Det står der ikke noget om ... hehehe Tak for hjælpen!
lol, selv tak ;) Ved ikke hvor jeg fik den gruppekode fra :p Tak for points :)
Kurser inden for grundlæggende programmering