webForumDet fria alternativet

Glömt lösen skickas till mail

ASP

16 svar · 431 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan!

Håller på och testar hur det går till att bara fylla i sitt mail och då få mailet skickat till sin mail... har denna kod men den klagar på object krävs 'RSTemp'

det verkar som att den inte kopplas till databasen så här ser i a f koden ut:

<% If request.querystring("do") = "losen" then 
on error resume next

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER=Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="&server.mappath("databasem.mdb")
If Not Isnull(Request.Form("Email")) Then strEmail = Cstr(Request.Form("Email"))

mySQL = "SELECT name, losen, email FROM customers where email = '" &strEmail& "'"
set RSTemp = Connect.execute(mySQL)

	Set CDOMail = Server.CreateObject("CDONTS.NewMail")
	CDOMail.From = "losenord@blabla.com"
	CDOMail.To = RSTemp("f_Mail")
	CDOMail.Subject = "Ditt lösenord är = " &RSTemp("losen")& ""
	CDOMail.Body = "Ditt lösenord"
	CDOMail.Send
	If error.number <> 0 Then
	Response.Write "Lösenordet finn i din mail"
	Else
	Response.Write "Den angivna mailen finns ej registrerad"
	End If
	Set CDOMail = Nothing

End If
RSTemp.close
set RSTemp = nothing
connect.close
set connect = nothing
%>
Medlem sedan feb. 200112 078 inlägg
#2

Posten 'f_mail' som du försökte anropa finns inte i urvalet du gör mot databasen. Jag bytte namn på den.

Tog bort on error resume next också, det är inte bra att ha i felsökningssyfte.

<% If request.querystring("do") = "losen" then 

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER=Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="&server.mappath("databasem.mdb")
If Not Isnull(Request.Form("Email")) Then strEmail = Cstr(Request.Form("Email"))

mySQL = "SELECT name, losen, email FROM customers where email = '" &strEmail& "'"
set RSTemp = Connect.execute(mySQL)

	Set CDOMail = Server.CreateObject("CDONTS.NewMail")
	CDOMail.From = "losenord@blabla.com"
	[red]CDOMail.To = RSTemp("email")[/red]
	CDOMail.Subject = "Ditt lösenord är = " &RSTemp("losen")& ""
	CDOMail.Body = "Ditt lösenord"
	CDOMail.Send
	If error.number <> 0 Then
	Response.Write "Lösenordet finn i din mail"
	Else
	Response.Write "Den angivna mailen finns ej registrerad"
	End If
	Set CDOMail = Nothing

End If
RSTemp.close
set RSTemp = nothing
connect.close
set connect = nothing
%>
Medlem sedan dec. 20001 626 inlägg
#3

nu får jag detta felmeddelande:

Server object error 'ASP 0177 : 800401f3' 

Server.CreateObject Failed 

/glomtlosen.asp, line 41

flet pekar på raden:

Set CDOMail = Server.CreateObject("CDONTS.NewMail")

Medlem sedan juni 200032 967 inlägg
#4

Är det lokalt eller hos webhotellet?
Vilket OS?

Medlem sedan dec. 20001 626 inlägg
#5

det är hos webhotellet (digikom), får detta meddelande när jag kör det loklat winXP som OS:

Feltyp:
Serverobjekt, ASP 0177 (0x800401F3)
Ogiltig klassträng
Medlem sedan juni 200032 967 inlägg
#6

CDONTS finns inte i Windows XP, därav min fråga. Kontrollera med Digikom då, så att de inte lyft bort CDONTS.

*famlar i mörkret*

Mvh,

Medlem sedan dec. 20001 626 inlägg
#7

hoppsan, d verkar som att de inte har det, de använder sig utav Jmail eller dynumail, hur kan man göra detta med Jmail??

Medlem sedan juni 200032 967 inlägg
#8

Det, min vän, finner du om du söker. ;-)

Mvh,

Medlem sedan dec. 20001 626 inlägg
#9

ok, har gjort detta nu:

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER=Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="&server.mappathdatabase.mdb")
If NOT Request.Form("Email") = "" Then strEmail = Cstr(Request.Form("Email"))
else
response.write "du måste ange ngt"
end if
mySQL = "SELECT name, losen, email FROM customers where email = '" &strEmail& "'"

set RSTemp = Connect.execute(mySQL)

subject = "Ditt Lösenord"
recipient = strEmail
body = "Ditt lösenord är '" &RSTemp("losen")& "' "

' Skapar en koppling till JMail
set msg = Server.CreateOBject( "JMail.Message" )

msg.Logging = true
msg.silent = true

msg.From = senderEmail
msg.FromName = name

msg.AddRecipient recipient

msg.Subject = subject

msg.body = body

if not msg.Send("mail.server" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
Response.write "Ditt meddelandet skickades! "
end if 

RSTemp.close
set RSTemp = nothing
connect.close
set connect = nothing

får felmeddelandet:

Microsoft VBScript runtime error '800a01a8' 
Object required: '' 
/glomtLosen.asp, line 37

dvs raden:
set RSTemp = Connect.execute(mySQL)

Medlem sedan dec. 20001 626 inlägg
#10

någon?

Medlem sedan juni 200032 967 inlägg
#11

Jag vet inte om det har med felmeddelandet att göra, men flukta in det fetstilta. Det är nog fel.

Connect.Open "DRIVER=Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=[b]"&server.mappathdatabase.mdb"[/b])
Medlem sedan dec. 20001 626 inlägg
#12

det var det ena, nu får jag det att skickas dvs det står:
"Ditt meddelandet skickades!"
men när jag kollar i min mail så får jag inget

Medlem sedan mars 20015 287 inlägg
#13

Jag ser iofs inte att du skickar mailet någonstans?

Medlem sedan dec. 20001 626 inlägg
#14

man anger sin email först i en textfield som heter Email, därefter läser jag in den i strEmail och mailet är tänkt att skickas till det angivna mailet så som koden visar:

recipient = strEmail
Medlem sedan mars 20015 287 inlägg
#15

Jo, men ska du inte skicka mailet också, eller kanske jag som missar något.

msg.Send("mail.server")

Där mail.server är en fungerande mailserver?

RED. Kanske inte iofs...

Medlem sedan mars 20015 287 inlägg
#16

Sen måste väl även senderEmail vara en giltig epostadress.

Medlem sedan dec. 20001 626 inlägg
#17

fan va dum jag är, man tackar och bockar det funkade nu!

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)