Comunidad de diseño web y desarrollo en internet online

Enviar correo mediante un formulario flash mx 2004 y ASPMail

Citar            
MensajeEscrito el 08 May 2004 11:40 am
Mediante el tutorial de como enviar correo mediante loadVars he hecho un formulario que le pasa los datos a un archivo .asp (la diferencia con el tutoria les que uso ASPMail) para enviar estos datos a un correo pero resulta que cuando consulto ese correo aparece "undefined" en cada uno de los campos que he enviado.

Porque dios mio, porque me castigas asin'

El caso es que no consiguo saber porque pasa esto.

Alguien tiene el mismo problema y a encontrado una solucion (por que sino la ha encontrado pues casi que le acompaño en el sentimiento).



Gracias muchas.

Por Jaime

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 08 May 2004 02:27 pm
Por favor, revisa este post donde hay muchas soluciones, si no encuentras ninguna, puedes postear tu pregunta en ese mismo hilo

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 08 May 2004 06:14 pm
jeje, y por "este post" me referia a

http://www.cristalab.com/foros/viewtopic.php?t=136

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 10 May 2004 08:39 am
En los post que me indicas no encuentro la solución. De momento los avances indican ciertas cosas, me explico;



Uso aspmail no CDonts, y el mail llega al correo que deseo, con la salvedad que en lugar de poner los datos que he escrito(supuestamente) desde el formulario aparecen 'undefined' en cada uno de los campos (lease nombre, empresa, email y comentario) Por lo tanto el problema es que, o no pasa los datos del formulario o los pasa pero no es capaz de leerlos correctamente. ¿Porque? ni idea.



A ver si alguien descrifra el enigma porque veo que mucha mas gente tiene el mismo problema.



Gracias igualmente.

Por Jaime

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 10 May 2004 12:29 pm
Para estos extraños casos normalmente hago un formulario HTML con las mismas variables que Flash le envia, asi veras desde el navegador la salida que ASP le pasa a Flash y de una vez observas si algo esta mal en tu ASP, intentalo (Puede ser con Dreamweaver) y asi podras "depurar" de una manera mas eficiente.



Si te funciona perfecto desde un formulario, de todas formas copia y pega aqui la salida exacta que ves por pantalla para poder ver que pasa

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 10 May 2004 03:55 pm
En este caso la salida exacta es "bien" ya que es el response.write que da como resultado si todo va bien. En efecto el mail a llegado a su destido correctamente, esta claro que el archivo asp esta correcto, el problema sigue siendo desde la salida de flash.

Por Jaime

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 10 May 2004 04:15 pm
POR FIN!



La respuesta a tan pesada pregunta era que el codigo del ejemplo en flash estaba mal.

No se si para CDonts funciona bien pero para

ASPMail ha de ser asi:



envio_lv.nombre = nombre_txt;

envio_lv.email = email_txt;

envio_lv.clave = clave_txt;



en lugar de asi:



envio_lv.nombre = nombre_txt.text;

envio_lv.email = email_txt.text;

envio_lv.clave = clave_txt.text;



Con el .text lo vuelve loco. Buego gracias igualmente por la atención recivida Freddie.

Saludos.

Por Jaime

2 de clabLevel



 

unknown
Citar            
MensajeEscrito el 10 May 2004 10:33 pm
El error lo tenias tu



Colocaste como nombre de VARIABLE y no como nombre de instancia, los nombres de los campos de texto (Es decir, el nombre del campo de texto no lo colocasyte donde dice "Instance Name", sino donde dice "Var")



Si lo colocas donde es, te funcionara igual con CDONTS, ASPMail o lo que sea ;)



La tecnica de colocarle nombres de variable a campos de texto es vieja y viene de Flash 4, desde Flash MX eso cambio



Saludos :D

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 15 May 2004 09:53 pm
Hola , veran soy un programador novato y he intentado usar el codigo para mandar un correo a una direccion determinada desde flash , usando asp .



Pero me pasa que parece que no ejecuta la parte de recibir



aqui tienes el codigo que uso en flash , me da el mensaje de que esta esperando respuesta , pero probando se que nunca entra en la funcion de recibir , aunque la funcion de envio la hace completamente (lo he probado imprimiendo algunos datos)



sabes que puede pasar? acabo de instalarme el iis , y las paginas asp funcionan perfectamente en el directorio en el que tengo todos los archivos html , asp , y flash, swf.



he instalado ademas el cdonts.dll que he leido que hacia falta para q no me saliera un error (esta parte ya esta arreglada).Pero poruqe razon puede ser que no me llama a mi funcion recibir???? se queda pensando como si no ejecutara el asp que por cierto el codigo q uso es el siguiente :



----------------------------------------------------------------

Email.ASP

<%



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



oMail.BodyFormat = 0

oMail.MailFormat = 0



Dim nombre = Request.Form("nombre")

Dim apellido1 = Request.Form("apellido1")

Dim apellido2 = Request.Form("apellido2")

Dim direccion = Request.Form("direccion")

Dim telefono=Request.Form("telefono")

Dim email=Request.Form("email")

Dim precio=Request.Form("precio")

Dim dialleg=Request.Form("dialleg")

Dim meslleg=Request.Form("meslleg")

Dim anolleg=Request.Form("anolleg")



Dim diasal=Request.Form("diasal")

Dim messal=Request.Form("messal")

Dim anosal=Request.Form("anosal")



Dim tiphab=Request.Form("tiphab")

Dim numhab=Request.Form("numhab")

Dim pershab=Request.Form("pershab")

Dim formapago=Request.Form("formapago")



Dim Remitente = Request.Form("email")

Dim Destino = "[email protected]" 'Email de destino



'Asunto = Request.Form("asunto")

'Cuerpo = Request.Form("cuerpo")



oMail.Send Remitente, Destino, nombre, apellido1,apellido2,direccion,telefono,email,precio,dialleg,meslleg,anolleg,diasal,messal,anosal,tiphab,pershab,formapago



Set oMail = Nothing



%>

estado=Mensaje enviado :D



----------------------------------------------------

Me harian un gran favor si pudieran decirme a que se debe el que no mande el correo(tengo Xp , adsl , por si sirve de algo saberlo , uso flash 5 y dreamweaver MX)



Saluda Atentamente Ignacio.

Por oki

3 de clabLevel



 

unknown
Citar            
MensajeEscrito el 15 May 2004 09:59 pm
Muy probablemente se deba a que usas Flash 5; ya que el codigo de esta web funciona solamente con MX o MX2004, esto es porque son estas versiones de Flash als que incluyen la clase "LoadVars"

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 16 May 2004 05:21 am
Hola a todos denuevo , veras , he probado ahora dos codigos asp , sin ejecutar nada de flash para ver si enviaba el correo (y`poder localizar el problema). Pues bien , ejecuto el siguiente codigo mediante dreamweaver y me sale en la pantalla el mensaje de enviado (o parece que tira , pero nada en mi correo)



<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>

<head>

<title>Documento sin t&iacute;tulo</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>



<body>

<%

on error resume next



Dim iMsg

Dim iConf

Dim Flds

Dim strHTML



Const cdoSendUsingPickup = 1



set iMsg = CreateObject("CDO.Message")

set iConf = CreateObject("CDO.Configuration")



' Configuración del envío (PickUp Directory)

Set Flds = iConf.Fields

With Flds

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPickup

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\inetpub\mailroot\pickup"

.Update

End With



' Mensaje

strHTML = ""

strHTML = strHTML & ""

strHTML = strHTML & ""

strHTML = strHTML & "<b> Hola que tal</b>"

strHTML = strHTML & ""

strHTML = strHTML & ""



' apply settings to the message

With iMsg

Set .Configuration = iConf

.To = "[email protected]"

.From = "[email protected]"

.Subject = "Hola que talf"

.HTMLBody = strHTML

' Adjuntos ...

.Send

End With





Set iMsg = Nothing

Set iConf = Nothing

Set Flds = Nothing



if err0 then

Response.write("Algo ha fallado")

else

Response.write("Parece que tira")

end if

%>



----------------------------------------------------

El 2 codigo que ejecuto es usando la libreria Cdonts, y tampoco me funciona (sigue dando mensaje de enviado , pero en el correo nada de nada). Agradeceria alguna opinion al respecto.





<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<html>

<head>

<title>Documento sin t&iacute;tulo</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>



<body>

<%



'Vamos a mandar un mail!

Dim sDestintatario, sAsunto, sCuerpo

Dim oMail 'el objeto CDO



sAsunto="E-Mail de prueba desde ASP"



'Creamos el cuerpo con varias líneas para facilitar la lectura

sCuerpo = "Este es mi primer mensaje enviado desde ASP." & VbCrLf

sCuerpo = sCuerpo & "Acabaré gestionando una lista de correo algún día!" & VbCrLf

sCuerpo = sCuerpo & VbCrlf & VbCrLf & "Ah! Lo aprendí en www.aspfacil.com"



sDestinatario="[email protected]"



'Enviamos el email

set oMail=Server.CreateObject("CDONTS.NewMail")



'Establecemos las propiedades del objeto

oMail.From = "ASPFácil ejemplo de Mail " 'Pon aquí tu mombre y dirección

oMail.To = sDestinatario

oMail.Subject = sAsunto

oMail.Body = sCuerpo



' Enviamos el email!

oMail.Send



set oMail = nothing

Response.Write ("Mensaje enviado.")



%>

</body>

</html>



------------------------------------------------------

Datos , tengo instalado el iis , la pagina asp sale , he instalado el cdonts.dll (lo cogí de una pagina de internet).

Por oki

3 de clabLevel



 

unknown
Citar            
MensajeEscrito el 16 May 2004 04:58 pm
Pues, la unica explicación es que aun si tienes oinstalado CDONTS, no tienes configurado en IIS un servidor SMTP (Un servidor de correo) en tu maquina



Creo que IIS trae uno (Tanto tiempo con Software Libre ...) integrado, puedes configurarlo y reintentar, pero tu maquina debe estar habilitada poara enviar y recibir por el puerto 25 (SMTP)

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 16 May 2004 07:55 pm
en parte consegui ya enviar por asp un correo haciendo los siguientes pasos ,

1.-me instale aspmail , y lo registre en win32/regvr32



2.-ejecute los dos siguientes codigos



formu02.asp



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>.:FORMULARIO DE CONTACTO:.Untitled</title>

</head>



<body>

<form action="formu01.asp" method="POST">

Nombre:<input type="Text" name="nombre" size="50" maxlength="200">

<br>

Email:<input type="Text" name="email" size="20" maxlength="200">

<br>

<input type="submit" value="Enviar">

</form>

</body>

</html>



----------------------------------------------------

formu01.asp



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%

'creo el objeto correo

set mail = server.createObject("Persits.MailSender")

'configuro el mensaje

'señalo el servidor de salida para enviar el correo

mail.host = "smtp.wanadoo.es"

'indico la dirección de correo del remitente

mail.from = "[email protected]"

'indico la dirección del destinatario del mensaje

mail.addAddress "[email protected]"



'Obtengo los datos del formulario

nombre = request.form("nombre")

email = request.form("email")

'compongo el cuerpo del mensaje

cuerpo = "Formulario De Nuestra Página Web"& VBNEWLINE & VBNEWLINE

cuerpo = cuerpo & "Nombre: " & nombre & VBNEWLINE

cuerpo = cuerpo & "Email: " & email

'mando el correo...

'indico el cuerpo del mensaje

mail.body = cuerpo

'lo envio

'aseguro que no se presenten errores en la página si se producen

On Error Resume Next

mail.send

if Err ><0 then

response.write "Error, no se ha podido completar la operación"

else

Request.Form("nombre")

'Declaro Saludo de despedida del visitante

saludo = "Gracias por escribirnos:" & nombre & ", el formulario se ha enviado correctamente"

'Muestro saludo

response.write saludo end if

%>

<html>

<head>

<title>.:GRACIAS POR ESCRIBIRNOS:.</title>

</head>

<body>

</body>

</html>



Esto me permite enviarme un correo . pero ahora tengo el siguiente problema cuando ejecuto mi codigo flash , mi funcion





envio_lv.sendAndLoad("email.asp", recibir_lv, "POST");



PArece que no llama a mi codigo email.asp que es el siguiente :





<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%

'creo el objeto correo

set mail = server.createObject("Persits.MailSender")

'configuro el mensaje

'señalo el servidor de salida para enviar el correo

mail.host = "smtp.wanadoo.es"

'indico la dirección de correo del remitente

mail.from = "[email protected]"

'indico la dirección del destinatario del mensaje

mail.addAddress "[email protected]"



'Obtengo los datos del formulario

'nombre = request.form("nombre")

'email = request.form("email")



nombre = Request.Form("nombre")

apellido1 = Request.Form("apellido1")

apellido2 = Request.Form("apellido2")

direccion = Request.Form("direccion")

telefono=Request.Form("telefono")

email=Request.Form("email")

precio=Request.Form("precio")

dialleg=Request.Form("dialleg")

meslleg=Request.Form("meslleg")

anolleg=Request.Form("anolleg")

diasal=Request.Form("diasal")

messal=Request.Form("messal")

anosal=Request.Form("anosal")



tiphab=Request.Form("tiphab")

numhab=Request.Form("numhab")

pershab=Request.Form("pershab")

formapago=Request.Form("formapago")



'Request.Form("email")

' Destino = "[email protected]" '

' Email de destino



'Asunto = Request.Form("asunto")

'Cuerpo = Request.Form("cuerpo")





'compongo el cuerpo del mensaje

cuerpo = "Formulario De Nuestra Página Web"& VBNEWLINE & VBNEWLINE

cuerpo = cuerpo & "Nombre: " & nombre & VBNEWLINE

cuerpo = cuerpo & "Apellido1: " & apellido1

cuerpo = cuerpo & "Apellido2: " & apellido2



'mando el correo...

'indico el cuerpo del mensaje

mail.body = cuerpo

'lo envio

'aseguro que no se presenten errores en la página si se producen

On Error Resume Next

mail.send

if Err ><0 then

response.write "Error, no se ha podido completar la operación"

estado="error"

else

Request.Form("nombre")

estado="MEnsaje Enviado"

'Declaro Saludo de despedida del visitante

saludo = "Gracias por escribirnos:" & nombre & ", el formulario se ha enviado correctamente"

'Muestro saludo

response.write saludo end if

%>

<html>

<head>

<title>.:GRACIAS POR ESCRIBIRNOS:.</title>

</head>

<body>

</body>

</html>





Alguien sabe a que puede ser debido?

no me llama a envio_lv.sendAndLoad ni a nuestra funcion recibir_lv que deberia devolverme si el correo fue correcto o no .



Muchas Gracias.

Por oki

3 de clabLevel



 

unknown
Citar            
MensajeEscrito el 16 May 2004 08:06 pm
Esto es porque el resultado de la pagina web debe ser obligatoriamente este:

Código :

estado=Mensaje enviado


Y cuando Flash envie la orden send a esa web lo que esa web le devolvera al load es

Código :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Gracias por escribirnos: NOMBRE, el formulario se ha enviado correctamente"

<html>

<head>

<title>.:GRACIAS POR ESCRIBIRNOS:.</title>

</head>

<body>

</body>

</html>




Quitale todo el HTML y te recomendaria que leyeras el tutorial completo de LoadVars para que conozcas mas a fondo su funcionamiento:

http://www.cristalab.com/vertutorial.php?id=6

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 16 May 2004 09:42 pm
veras , el codigo lo he modificado quitado el html , y si lo ejecuto por si solo funciona (me manda un correo con los campos nombre y apellidos vacios).por lo que asp hace el trabajo perfectamente.



ahora lo que no entiendo es porque el codigo que realizo en flash no me hace la llamada al archivo asp , para que podais ayudarme algo os presento el codigo que ejecuto en mi funcion :



//Variable para enviar correo

var envio_lv:LoadVars=new LoadVars();

var recibir_lv:LoadVars=new LaodVars();







function enviarMail() {



envio_lv.nombre = nombre;

envio_lv.apellido1 = apellido1;

envio_lv.apellido2 = apellido2;

//envio_lv.direccion = direccion;

//envio_lv.telefono = telefono;

//envio_lv.email = email;



//envio_lv.precio = precio;

//envio_lv.diallegada=diallegada.getSelectedIndex();

//envio_lv.mesllegada=mesllegada.getSelectedIndex();

//envio_lv.anollegada=anollegada.getValue();

//envio_lv.diasalida=diasalida.getSelectedIndex();

//envio_lv.messalida=messalida.getSelectedIndex();

//envio_lv.anosalida=anosalida.getValue();

//envio_lv.tiphab=tipohabitacion.getValue();

//envio_lv.numhab=numerohabitacion.getValue();

//envio_lv.pershab=personahabitacion.getValue();

//envio_lv.formapago=formapago.getValue();





envio_lv.sendAndLoad("email.asp", recibir_lv, "POST");



};



recibir_lv.onLoad = function(exito) {



if (exito){

estado_txt=this.estado;

}else{

estado_txt="Error en la aplicacion de correo";

}



}

Por oki

3 de clabLevel



 

unknown
Citar            
MensajeEscrito el 17 May 2004 01:34 am
Si les estas poniendo no0mbre de instancia atus campos de texto, debes acceder a su contenido por medio de la propiedad text.

Por ejemplo, si tengo un campo de texto llamado nombre y quiero ver por pantalla su contenido haria esto:

Código :

trace(nombre.text);


O si se lo quieres asignar a una variable

Código :

unTexto = nombre.text;

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 17 May 2004 06:31 am
he probado lo de trace y me sale bien en pantalla el texto que le tengo metido a mis instancias siempre que lo ejecute en la funcion enviarMail , pero si pongo los trace dentro de mi funcion recibir_lv , no sale nada :



recibir_lv.onLoad = function(exito) {

trace(nombre.text)

trace(apellido1.text)

trace(apellido2.text)



if (exito){

//estado_txt.html = true;



estado_txt=this.estado;

}else{

estado_txt="Error en la aplicacion de correo";

}



};



Yo que se , ya me esta cabreando la funcion sendAndLoad (ni ejecuta asp , ni ejecuta la funcion recibir).



Bueno si alguien mas sabe algo mas del tema , que escriba algo.

Por oki

3 de clabLevel



 

unknown
Citar            
MensajeEscrito el 17 May 2004 03:44 pm
Pon el codigo asi y fijate atentamente en los cambios

Código :

//Variable para enviar correo

var envio_lv:LoadVars=new LoadVars();

var recibir_lv:LoadVars=new LoadVars();

function enviarMail() {

    envio_lv.nombre = nombre.text;

    envio_lv.apellido1 = apellido1.text;

    envio_lv.apellido2 = apellido2.text;

    envio_lv.sendAndLoad("email.asp", recibir_lv, "POST");

}; 

recibir_lv.onLoad = function(exito) {

    if (exito){

        estado_txt.text = this.estado;

    }else{

        estado_txt.text = "Error en la aplicacion de correo";

    }

}; 


Tenias un error, ya que decalrabas la variable "recibir_lv" como LaodVars, no como LoadVars; no pusiste los .text en muchos campos de texto y bueno, copialo y funcionara



Por ultimo, no desesperes, a veces pasa en la curva de aprendizaje que el proceso se "trabe" en un momento; de cualquier modo, estaremos aqui para ayudarte

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 22 Ago 2008 02:12 pm
A ver si alguien puede ayudarme con el tutorial de envio de mail con loadvariables, lo hago al pie de la letra sin ninguna modificacion y cuando lo pruebo en el mensaje donde deberia decir que el correo se envio dice undefined y no envia el correo. Lo pruebo en mi compu, donde tengo instalado el IIS 5.1, tengo banda ancha, tengo instalada y registrada la libreria del Cdonts y no funciona. Lo necesito para hacer un trabajo y no puedo lograr que funcione.....

Por ileanagomez

0 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.