Foros del Web » Programando para Internet » ASP Clásico »

Mi usuario olvido su contraseña, como se la envio por mail automatico?

Estas en el tema de Mi usuario olvido su contraseña, como se la envio por mail automatico? en el foro de ASP Clásico en Foros del Web. Buenas. La idea es sensilla, pero no logro hacerla funcionar : Un usuario se olvidó su contraseña... Entra a un formulario donde llena ciertos datos, ...
  #1 (permalink)  
Antiguo 25/01/2005, 08:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 6 meses
Puntos: 1
De acuerdo Mi usuario olvido su contraseña, como se la envio por mail automatico?

Buenas. La idea es sensilla, pero no logro hacerla funcionar :

Un usuario se olvidó su contraseña...
Entra a un formulario donde llena ciertos datos, estos datos se verifican en la BD y si son correctos, se deberia enviar los datos de contraseña y usuario a la persona que los requiere.
vale decir que el email del usuario esta en la base de datos.

proceso:

formulario > asp1 > base > asp1 > mail del usuario

asp1:

toma datos del formulario, compara con la base, envia formulario al user...


el codigo que sue para eso es el siguiente:

<%Dim mandaDATA
' lo de arriba crea la variable

Set mandaDATA = Server.CreateObject("ADODB.Connection")

ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)}; "
ConnStr = ConnStr & "DBQ=" & Server.MapPath("userSEC.mdb")
mandaDATA.Open(ConnStr)

SQLtemp = "SELECT * FROM userREG WHERE dni = '" & Request.Form("dni") & "' "
Set rs = mandaDATA.Execute(SQLtemp)

while not rs.eof

If dni = rs("dni") then


Destino = "[email protected]"
servidor = "smtp.lorien.com"
titulo = "reenvio de Clave y Usuario de Acceso"


'Asignamos los valores recibidos del formulario a las variables
'Estas variables deben estar en el formulario dentro del swf

'aca empiezan a sacarse los datos de la empresa del usuario
empresa = Request("empresa")
direlocal = Request("direlocal")
tellocal = Request("tellocal")
'aca empiezan los datos del usuario
nombre = Request("nombre")
apellido = Request("apellido")
dni = Request("dni")
direccion = Request("direccion")
localidad = Request("localidad")
provincia = Request("provincia")
telefono = Request("telefono")
celular = Request("celular")
email = Request("email")
cp = Request("cp")

'Creamos una instancia del objeto ASPMAIL
Set Mail = Server.CreateObject("Persits.MailSender")


' Creamos el cuerpo del mensaje
strBody = strBody & "<font>"
strBody = strBody & "<b>Datos de la empresa del vendedor/usuario:</b><br>"
strBody = strBody & "Empresa: " & empresa & "<br>"
strBody = strBody & "Dirección del Local: " & direlocal & "<br>"
strBody = strBody & "Teléfono del Local: " & tellocal & "<br><br>"
strBody = strBody & "<b>Datos del vendedor/usuario:</b><br> "
strBody = strBody & " Nombre: " & nombre & "<br>"
strBody = strBody & " Apellido: " & apellido & "<br>"
strBody = strBody & " Ducumento de Identidad (DNI): " & dni & "<br>"
strBody = strBody & " Dirección: " & direccion & "<br>"
strBody = strBody & " Localidad: " & localidad & "<br>"
strBody = strBody & " Provincia: " & provincia & "<br>"
strBody = strBody & " Código Postal: " & cp & "<br>"
strBody = strBody & " Teléfono: " & telefono & "<br>"
strBody = strBody & " Correo Electrónico: " & email & "" & chr(11)
strBody = strBody & "</font>"


'Asignamos las propiedades al objeto con ASPMAIL
Mail.Host = servidor
Mail.Port = 25 ' Valor opcional. 25 es el puerto por defecto.
Mail.From = rs("email")
Mail.FromName = Email ' Opcional
Mail.Subject = titulo
Mail.Body = strBody
Mail.IsHTML = True
Mail.AddAddress Destino

On Error Resume Next

Mail.Send

' El control del error es con ASPMAIL


'el siguiente codigo es para HTML limpio o ASP en los formularios. Si se va a usar flash, borrarlo y usar el de arriba.

If Err <> 0 Then
Response.Write "Error, Por favor intente enviarlo más tarde " & Err.Description
Else
Response.Write "El mensaje fue enviado correctamente ¡Gracias por comunicarse con nosotros!"
End If


'Destruimos el objeto con aspmail
Set Mail = Nothing


rs.Close
mandaDATA.Close
set ConnStr = Nothing

%>



bien, en todo eso debe haber algun error porque no funciona... ojo! no tengo mucha idea de ASP el codigo lo fui deduciendo y armando con pedacitos de otros codigos que ya tengo y funcionan correctamente.
Muchas gracias por cualquier respuesta y espero no molestar tanto con estas cosas :)


Atte, Ariel
  #2 (permalink)  
Antiguo 25/01/2005, 09:19
 
Fecha de Ingreso: septiembre-2004
Mensajes: 36
Antigüedad: 19 años, 8 meses
Puntos: 0
Hola.
Cuando envias el mail prueba a poner en lugar de Mail.Send pon Mail.SendToQueue porque a mi me daba error poner Mail.Send.
Tu pagina tiene un error de seguridad. Ya que se puede hacer SQL injection en el formulario porque no eliminas ni las comillas ni el doble guion.
De todas formas no haria falta recoger tantos datos en el formulario. Puesto que si el mail es unico para cada usuario y cada usuario solo puede tener un usuario al enviarlo al mail le enviarias al usuario que quieres. Vamos que con solo comprobar el mail seria suficiente.
Saludos.
  #3 (permalink)  
Antiguo 25/01/2005, 11:00
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 6 meses
Puntos: 1
si, por lo de SQL injection lo se, por ahora igual no he hecho ningun sistema de seguridad en todo el sitio, la idea es ponerlo, pero aun no se bien como.
cual seria el codigo para evitar eso? y, mejor aun, cual es el codigo que se injecta para mostrarme que eso esta mal??
lo he visto en los faqs creo, pero ahora no lo encuentro.

ok, intentare lo de Mail.SendToQueue a ver que sale!!

muchisimas gracias!!!


Ariel.-
  #4 (permalink)  
Antiguo 25/01/2005, 13:09
 
Fecha de Ingreso: septiembre-2004
Mensajes: 36
Antigüedad: 19 años, 8 meses
Puntos: 0
Hola.
Para evitar sql injection deberias hacerte una funcion para evitar las comillas dobles y el doble guion e incluso posteriormente el "Select" "Insert" "Drop"...
Seria con esta funcion.
Código:
Dim dni

dni=request.form("dni")

dni = Replace(dni," ' "," '' ")

dni = Replace(dni," - "," -- ")
Con eso valdria aunque si es un numero tendrias que comprobar si es un numero o evitar que contenta caracteres extraños a la hora de la inserción y devolver un error.
Saludos.
  #5 (permalink)  
Antiguo 26/01/2005, 06:20
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 6 meses
Puntos: 1
okis, vere que ondas... muchias gracias...

por cierto, me puse a leer articulos de SQL injection, y la verdad que ...
"tengo miedo neneeee"!!!!


Abrazos!
  #6 (permalink)  
Antiguo 31/01/2005, 07:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 6 meses
Puntos: 1
:( :(

Me ha tirado este error al usar :

Mail.SendToQueue

popup.mensaje2=Error, Por favor intente enviarlo más tarde AspEmail's premium features have expired. To continue using them, please visit www.aspemail.com to purchase a registration key.

No se, estoy algo perdido, vere como lo sigo...
  #7 (permalink)  
Antiguo 31/01/2005, 08:20
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 6 meses
Puntos: 1
sin embargo, eso fue en otro form, en el form de arriba. lo ambie tambien lo anterior y no funciono tampoco...
me pregunto...

se puede hacer eso que hice de armar una funcion dentro de otra?

en fin, no se bien que hice en ese codigo, no entiendo mucho de ASP...

Gracias a todos!!

Ariel.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:31.