30. maj 2002 - 16:06Der er
90 kommentarer og 1 løsning
HJÆLP !!!
Jeg vil gerne have at mine brugere, når de sender en mail i mit internet postkasse system, skal have en mail om at de har fået post. de skal modtage en rigtig mail hvor der står at der er kommet post...
Jeg har denne kode.. <% if request("send") = "besked" then ' Funktion der fikser quotes... FUNCTION fixQuotes( theString ) fixQuotes = Replace( theString, "'", "''", "''" ) END FUNCTION
' Connection til database. Set Con = Server.CreateObject( "ADODB.Connection" ) DBPath = "DBQ=" & server.mappath("mails.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
' ... Nu gemmer vi lige oplysningerne i databasen IF Request.Servervariables("Content_Length") > 0 THEN sql = "INSERT INTO mails (modtager,emne,dato,besked,afsender) VALUES ('" & request("modtager") & "','" & request("emne") & "','" & request("dato") & "','" & request("besked") & "','" & request("afsender") &"')" con.execute(sql)
' Og her skriver vi lige en lille besked om at nu er nyheden tilfoejet Response.Write "<font size=3 face=arial color=000000>Du har nu afsendt dit brev korrekt !</font>" response.write "<br>" response.write "<p><a href=indbakke.asp><font size=2 face=Arial>Tilbage til Indbakke oversigt</font></a></p>"
END IF
Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "mail.mobisend.dk" JMail.sender = "mail@mobisend.dk" JMail.subject = "Du har modtaget post på WebCodes.dk" JMail.AddRecipient stremail
'Thomas Faugsted skriver udtrækket til body delen i mailen JMail.Body = "Der er kommet post fra : "& strafsender & vbcrlf JMail.Body = JMail.Body & "E-mail adressen: " & stremail & VbCrLf & VbCrLf JMail.Body = jmail.body & "Mangler du asp eller et fedt design til hjemmesiden " JMail.Body = jmail.body & " ring 40 61 64 31 for nærmere oplysninger..." & vbcrlf
'Her bliver mailen med oplysningerne i´s prioritet bestemt ' 1 - højeste (Haster / Vigtigt) (Rødt tegn ) ' 2 - normal ' 3 - lavest
JMail.Priority = 1 JMail.Execute Set JMail = Nothing
<div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="100%" bgcolor="#000066"> <p align="center"><b><font size="2" face="Arial" color="#FFFFFF">Skriv en besked til en af de andre brugere</font></b></td> </tr> <tr> <td width="100%" height="15"></td> </tr> <tr> <td width="100%"><form action="ny_besked.asp?send=besked" method="POST" id="form1"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="100%"><font face="Arial" size="2">Nu har vi givet dig muligheden for sende privat post mellem jer brugere og vi ser frem til at dette kan foregå på en ordentlig måde.</font></td> </tr> <tr> <td width="100%" height="10"></td> </tr> <tr> <td width="100%" height="10"></td> </tr> <tr> <td width="100%"><font face="Arial" size="2">Modtager</font></td> </tr> <tr> <td width="100%"><font size="2" face="Arial" color="#000000"> </font><select name="modtager"> <%'Hiver alle brugerne ud i en select boks Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("brugere.mdb") set rs = Conn.Execute("select * from brugere") Do until rs.eof brugernavn = rs("brugernavn") %><option value="<%=brugernavn%>"><%=brugernavn%></option> <% rs.movenext loop rs.close set rs = nothing %> </select> <td bordercolor="#ffffff"> </td> </tr> <tr> <td width="100%"><font size="2" face="Arial" color="#000000"><input type="hidden" name="afsender" size="20" value="<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("brugere.mdb") strSQL = "SELECT * FROM brugere where brugernavn='" & session("brugernavn") & "'" set rs = conn.execute(strsql)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Nu ved jeg ikke helt hvordan din side virker men hvis man bare går ind på siden uiden noget og vælger en bruger så kan du ikke få lagt en email adresse i email-input da ASP koden køres på server side og HTML/Javascript er Client-side.
<td width="100%"><input type="text" name="email" size="20" value="<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("mails.mdb") strsql = "select * From mails where email='" & request("modtager") & "'" set rs = conn.execute(strsql)
Response.Write rs("email") & ""%>"></td>
Jeg vil gætte på den brokker sig over rs("email") er tom fordi request("modtager") er tom første gang siden loades, det ASP køres ikke når du vælger en bruger... Det skulle også være nok med at havde brugernavn som input til at send en e-mail, så du skal fjeren email inpuet'et.
Dette kode: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("mails.mdb") strsql = "select * From mails where email='" & request("modtager") & "'" set rs = conn.execute(strsql)
Flytter du op til det sted lige inde JMail koden er, altså lige inden: Set JMail = Server.CreateObject("JMail.SMTPMail")
Så retter du denne linie: JMail.AddRecipient stremail
nej det er når den skal udfylde fleterne i databasen og den siger at feltet afsender ikke kan have nullængde og det har den hellere ikke.. feltet afsender har en lille kommentar ( afsender = eaglerye
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 0x4d4 Thread 0x6fc DBC 0xac1500c Jet'.
/webcodes.dk/indbakke.asp, line 57
Det betyder typisk at den ikke kan finde database filen prøv evt at tjekke stien til databasen.
Jeg fik denne SQL skrevet ud: INSERT INTO mails (modtager,emne,dato,besked,afsender) VALUES ('THOMAS','','30-05-2002','Skriv noget jer','eagleeye','')
Efter navnet eagleeye er der kommet '' det tror jeg er grunden til der kommer fejl.
Jeg kan ikke helt forstå hvor de ekstra '' kommer fra det enste jeg kan se er at du har en function: ' Funktion der fikser quotes... FUNCTION fixQuotes( theString ) fixQuotes = Replace( theString, "'", "''", "''" ) END FUNCTION Den er inde for den førte IF sætninge prøv evt at flytte den helt ned i bunden af koden eller fjern den da den ikke briver kalde.. endnu..
Som jeg har skrevet før skal du ikke havde et email felt da du ikke fra ASP kan hendte email adressen på den valgte person før siden igen sendes til serveren..
ja derfor kan din metode hellere ikke bruges og desuden kan min anden metode godt bruges, der er bare en lille bitte fejl, som kan være en ' eller , for mget et sted..
Min metode kan netop bruges da den ikke behøver email adresse på forhånd. Som jeg skrev i et tidligere indøg kan du finde modtagers email adresse lige inden du sender mail sådan her: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("mails.mdb") strsql = "select * From mails where email='" & request("modtager") & "'" set rs = conn.execute(strsql)
Så du også fri for at gemme data de samme opysninger mange gange..
jeg er totalt forvirret og ja i min brugere tabel er der et felt som hedder email, det er det som skal være email...
her er hele koden, som jeg har den.... ret den lige til....
<% if request("send") = "besked" then ' Funktion der fikser quotes... FUNCTION fixQuotes( theString ) fixQuotes = Replace( theString, "'", "''", "''" ) END FUNCTION
' Connection til database. Set Con = Server.CreateObject( "ADODB.Connection" ) DBPath = "DBQ=" & server.mappath("mails.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
' ... Nu gemmer vi lige oplysningerne i databasen IF Request.Servervariables("Content_Length") > 0 THEN Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("brugere.mdb") strsql = "select * From brugere where brugernavn='" & request("modtager") & "'" stremail=rs("email") set rs = conn.execute(strsql) sql = "INSERT INTO mails (modtager,email,emne,dato,besked,afsender) VALUES ('" & request("modtager") & "','" & stremail & "','" & request("emne") & "','" & request("dato") & "','" & request("besked") & "','" & request("afsender") &"')" con.execute(sql)
' Og her skriver vi lige en lille besked om at nu er nyheden tilfoejet Response.Write "<font size=2 face=arial color=000000>Din artikel er tilføjet databasen !</font>" response.write "<br>" response.write "<p><a href=admin_oversigt.asp><font size=2 face=Arial>Tilbage til admin oversigten</font></a></p>"
END IF
Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "mail.mobisend.dk" JMail.sender = "mail@mobisend.dk" JMail.subject = "Du har modtaget post på WebCodes.dk" JMail.AddRecipient rs("email")
'Thomas Faugsted skriver udtrækket til body delen i mailen JMail.Body = "Der er kommet post fra : "& strafsender & vbcrlf JMail.Body = JMail.Body & "E-mail adressen: " & stremail & VbCrLf & VbCrLf JMail.Body = jmail.body & "Mangler du asp eller et fedt design til hjemmesiden " JMail.Body = jmail.body & " ring 40 61 64 31 for nærmere oplysninger..." & vbcrlf
'Her bliver mailen med oplysningerne i´s prioritet bestemt ' 1 - højeste (Haster / Vigtigt) (Rødt tegn ) ' 2 - normal ' 3 - lavest
JMail.Priority = 1 JMail.Execute Set JMail = Nothing
Det ville være en god ide at flytte den kode som sender mails ind denne if sætning efter beskeden er skrevet til databasen:
IF Request.Servervariables("Content_Length") > 0 THEN
'...KODE
' Og her skriver vi lige en lille besked om at nu er nyheden tilfoejet Response.Write "<font size=3 face=arial color=000000>Du har nu afsendt dit brev korrekt !</font>" response.write "<br>" response.write "<p><a href=indbakke.asp><font size=2 face=Arial>Tilbage til Indbakke oversigt</font></a></p>"
'....FLYT HER TIL
END IF
hvis det skulle ske at du kommer gennem den føste IF med request("send") = "besked" og ikke den den næste så forsøger den at sende en mail men den vil mangle nogle informationer, men det vil nok ikke sådan lige ske.
Ja det kan du også gøre..Det var bare for at havde koden som gemmer og sender mail samlet inde for samme IF, men som du skriver så det lige meget hvor det står.
tf_web, synes du ikke selv du burde være lidt gavmild med point, med al den tid eagleeye har brugt på at hjælpe dig? - selv at tage point i dette spørgsmål, er absolut ikke i Ekspertens ånd.
Hvis jeg var dig, ville jeg oprette et spørgsmål under fri debat, og give eagleeye de point han fortjener...
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.