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

problema al enviar e-mail seleccionados

Estas en el tema de problema al enviar e-mail seleccionados en el foro de ASP Clásico en Foros del Web. Hola a todos, Resulta que tengo una lista de registros de la tabla usuarios, bien en esta lista he añadido un checkbox llamado ENVIAREM y ...
  #1 (permalink)  
Antiguo 17/11/2006, 06:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 9
Antigüedad: 17 años, 5 meses
Puntos: 0
problema al enviar e-mail seleccionados

Hola a todos,

Resulta que tengo una lista de registros de la tabla usuarios, bien en esta lista he añadido un checkbox llamado ENVIAREM y quiero enviar a los usuarios seleccionados un e-mail con el campo USEMAIL y que en el cuerpo del mensaje envie tambien el nombre de cada usuario, este campo se llama NOMBRE.

Creo que deberia hacer una array pero no se bien como.

Un saludo.
  #2 (permalink)  
Antiguo 18/11/2006, 00:41
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
La verdad que leí 3 veces tu post y no entendí dónde esta cada cosa, tienes un campo de tipo booleano o el campo es en tu formulario o qué? podrías elaborar un poco más?

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 18/11/2006, 08:31
 
Fecha de Ingreso: noviembre-2006
Mensajes: 9
Antigüedad: 17 años, 5 meses
Puntos: 0
aclaracion

Perdona si no me explique bien,

Tengo una página de resultados, que me devuelve dentro de un formulario una tabla de resultados con todos los usuarios que hay en la tabla clientes.

He añadido un checkbox en la zona de repeticion de cada registro llamado ENVIREM y le he asignado el valor del e-mail de cada usuario del recordset rsusuarios.

Tambien he incorporado en dicha página el contenido del mensaje que ha de enviar despues de pulsar el boton enviar, en dicho contenido quiero que envie a cada usuario seleccionado un e-mail y que en el contenido del mensaje figure el nombre correspondiente de cada cliente.

Espero que ahora lo entiendas, un saludo.
  #4 (permalink)  
Antiguo 18/11/2006, 19:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Ahora si está más claro, gracias!

Mira, la verdad es que no se me había ocurrido nunca enviar como valor del checkbox el e-mail del usuario creo que sería un buen "aprouch" si no tienes/quieres pegarle a tu base de datos otra vez al momento de hacer la petición de envío al servidor, pero este no es tu caso porque además quieres personalizar esos e-mails cierto?

Yo haría lo siguiente:

1. Abre el recordset para construir la forma que envía el valor de los checkboxes.
2. Creo que por consistencia de la aplicación y por los motivos ya explicados arriba, yo asociaría el checkbox con el id de cada usuario, no con el e-mail.
3. Una vez haciendo el submit de la forma, el archivo que recibe dichos datos, debe preguntar por esos valores, y creo que esta es la parte medular de tu problema verdad?

Código:
'Aqui recuperamos los campos checkbox, como es una colección, llegarán de la siguiente manera {1, 5, 7, 2, N}
ids = Request.Form("nombre_checkbox")
Set rs = Server.CreateObject("ADODB.Recordset")
qry = "SELECT campos FROM tabla usuarios WHERE id IN(" & ids & ")"
rs.Open qry, ObjConn, 3, 3

'Aca va la logica necesaria para enviar los emails ya que tenemos el recordset

rs.Close
Set rs = Nothing
Salud!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 20/11/2006, 06:47
 
Fecha de Ingreso: noviembre-2006
Mensajes: 9
Antigüedad: 17 años, 5 meses
Puntos: 0
Gracias u_goldman, voy a provar a ver que pasa. Un saludo.
  #6 (permalink)  
Antiguo 20/11/2006, 11:14
 
Fecha de Ingreso: noviembre-2006
Mensajes: 9
Antigüedad: 17 años, 5 meses
Puntos: 0
Aún tengo problemas, mira...

Este es el codigo del recorset y aun sigue sin funcionar, por favor te agradecería que le echaras un vistazo.


<%
Dim rsusuarios__MMUSERSE
rsusuarios__MMUSERSE = "0"
If (Request.Form("ENVIAREM") <> "") Then
rsusuarios__MMUSERSE = Request.Form("ENVIAREM")
End If
%>
<%
Dim rsusuarios
Dim rsusuarios_cmd
Dim rsusuarios_numRows

Set rsusuarios_cmd = Server.CreateObject ("ADODB.Command")
rsusuarios_cmd.ActiveConnection = MM_dscruz88_STRING
rsusuarios_cmd.CommandText = "SELECT UserID, concat(usuarios.NOMBRE, ' ', usuarios.APELLIDO1, ' ',usuarios.APELLIDO2) AS NOMBRE, bandos.NOMBRE_CORTO_B AS BANDO_C, grupos.NOMBRE_CORTO AS GRUPO_C, cargo.CARGO AS CARGO_C, categorias.CATEGORIA_HONOR AS CAT_C, UserEmail FROM (((data_fiestascruz88.usuarios LEFT JOIN data_fiestascruz88.bandos ON usuarios.BANDO_C = bandos.ID_BANDO) LEFT JOIN data_fiestascruz88. grupos ON usuarios.GRUPO_C = grupos.ID_GRUPO) LEFT JOIN data_fiestascruz88.cargo ON usuarios.CARGO_C = cargo.ID_CARGO) LEFT JOIN data_fiestascruz88.categorias ON usuarios.CAT_C = categorias.ID_CATEG_HONOR WHERE UserID IN(" & ? & ")"
rsusuarios_cmd.Prepared = true
rsusuarios_cmd.Parameters.Append rsusuarios_cmd.CreateParameter("param1", 5, 1, -1, rsusuarios__MMUSERSE) ' adDouble

Set rsusuarios = rsusuarios_cmd.Execute
rsusuarios_numRows = 0
%>
  #7 (permalink)  
Antiguo 20/11/2006, 12:13
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
El problema que veo es aquí:

Código:
WHERE UserID IN(" & ? & ")"
rsusuarios_cmd.Prepared = true
rsusuarios_cmd.Parameters.Append rsusuarios_cmd.CreateParameter("param1", 5, 1, -1, rsusuarios__MMUSERSE) ' adDouble

Set rsusuarios = rsusuarios_cmd.Execute
rsusuarios_numRows = 0
Primero que nada, estás tratando de utlizar una consulta parametrizada y es muy buena práctica, pero, el ? debe ser parte del string que pasas a tu base de datos, no una variable, es decir, no tienes que concatenar, la expresión debería ser:

WHERE UserID IN(?,?,?,N)"

Además de eso, como puedes apreciar, no es solo un valor el que le estás enviando, son varios dependiendo de cuántos checkboxes lleguen de tu forma, por lo tanto tendrás que crear los parámetros dinámicamente.

Cabe destacar que tampoco es un proceso tan crítico, que quzás si no te quieres complicar tanto con tantos parámetros puedes pasarle directamente el valor:

Código:
variable = Request.Form(nombre_checkbox"")
WHERE UserID IN(" & variable & ")"
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 21/11/2006, 10:11
 
Fecha de Ingreso: noviembre-2006
Mensajes: 9
Antigüedad: 17 años, 5 meses
Puntos: 0
Uhi, por una pizca

el recordset funciona a las mil maravillas, muchas gracias, pero el e-mail no consigo que en el contenido aparezca el nombre de cada usuario al que va dirigido el e-mail, te muestro un trozo de codigo de ese e-mail que envio:

Código:
..........MailBody = MailBody & "                    <td class=" & Chr(34) & "textoacto" & Chr(34) & ">A la atenci&oacute;n del Sr/a: "
MailBody = MailBody & (rsusuarios.Fields.Item("NOMBRE").Value)
MailBody = MailBody & "</td>" & vbCrlf & ""
MailBody = MailBody & "                  </tr>" & vbCrlf & ""
MailBody = MailBody & "                  <tr>" & vbCrlf & ""
MailBody = MailBody & "                    <td class=" & Chr(34) & "textoacto" & Chr(34) & ">&nbsp;</td>" & vbCrlf & ""
MailBody = MailBody & "                  </tr>" & vbCrlf & ""
MailBody = MailBody & "                  <tr>" & vbCrlf & ""
MailBody = MailBody & "                    <td class=" & Chr(34) & "textoacto" & Chr(34) & ">&nbsp;</td>" & vbCrlf & ""
MailBody = MailBody & "                  </tr>" & vbCrlf & ""
MailBody = MailBody & "                  <tr>" & vbCrlf & ""
MailBody = MailBody & "                    <td class=" & Chr(34) & "textoacto" & Chr(34) & "><span class=" & Chr(34) & "txt2" & Chr(34) & ">Documento:</span>&nbsp;&nbsp;<span class=" & Chr(34) & "textopapel" & Chr(34) & "><strong>"
MailBody = MailBody & (rscirculares.Fields.Item("TITULO_CIR").Value)............
Un saludo y de nuevo gracias...
  #9 (permalink)  
Antiguo 21/11/2006, 10:32
Avatar de eberrios  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 145
Antigüedad: 19 años, 9 meses
Puntos: 1
puedes ponerlo directamnete desde la consulta como ya tienes identificado a tu usuario..

rsusuarios ("NOMBRE")
  #10 (permalink)  
Antiguo 21/11/2006, 15:20
 
Fecha de Ingreso: noviembre-2006
Mensajes: 9
Antigüedad: 17 años, 5 meses
Puntos: 0
Explicate un poco más, he provado tu sugerencia, pero no doy con la tecla, VALGA LA REBUNDANCIA
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 17:41.