La gran mayoría de nosotros requerimos en nuestras webs incluir formularios de envío de correo, ya sea para contacto, reservas, etc...
He buscado esto por la Web, pero no lo he encontrado, al menos a mi gusto, o solo en Flex (el cual no manejo actualmente).
Aquí muestro de manera muy sencilla (apto para principiantes), cómo enviar un correo electrónico y recibir respuesta en Flash de confirmación del envío.
- Primero hay que crear un nuevo archivo de flash.
- Insertar (para este ejemplo) 3 cuadros de texto de tipo input.
- Insertar 2 cuadros de texto de tipo dynamic.
- Crear un botón
Nombres de los campos Input:
- txtNombre
- txtApellidos
- txtEmail
Nombres de los campos Dynamic:
- lbRespuesta
- lbError
Nombre del botón:
- btEnviar
Se verá de esta forma:

Ahora solo hay que agregar en el primer frame (donde está el formulario) este código AS3 (dentro del código va una pequeña explicación):
Código :
//Función que se ejecuta al presionar el botón btEnviar.
function irAEnviar(event:MouseEvent):void {
//Creamos misVariables la cual contendrá nuestros campos.
var misVariables:URLVariables = new URLVariables();
//Definimos los campos y les agregamos el valor de las cajas de texto.
misVariables.nombre = txtNombre.text;
misVariables.apellidos = txtApellidos.text;
misVariables.email = txtEmail.text;
//Creamos la instancia pedido que contendrá los datos de envío.
var pedido:URLRequest = new URLRequest();
//Pasamos los datos al pedido, el método de envío y le cargamos misVariables.
pedido.url = "http://www.tuDominio.com/correo/enviarCorreo.php";
pedido.method = URLRequestMethod.POST;
pedido.data = misVariables;
//Creamos la instancia cargador.
var cargador:URLLoader = new URLLoader();
//Damos formato de Variables a cargador .
cargador.dataFormat = URLLoaderDataFormat.VARIABLES;
//Listener de cargador que espera se COMPLETE la carga para ejecutar la función completeHandler.
cargador.addEventListener(Event.COMPLETE, completeHandler);
//intentamos cargar el pedido y si hay algún error lo detectamos
try {
cargador.load(pedido);
} catch (error:Error) {
lbError.text= "Error en el envío";
}
//Aquí obtenemos la respuesta del PHP para confirmar en flash que todo salió bien o mal.
function completeHandler(event:Event):void {
lbRespuesta.text=event.target.data.respuestaPHP;
}
}
//Listener que está esperando el Click en el btEnviar para ejecutar la función irAEnviar
btEnviar.addEventListener(MouseEvent.CLICK, irAEnviar);
Guardamos nuestro archivo flash con el nombre Correo (o el que quieran) y presionamos F12 para publicarlo.
Ahora hay que crear el archivo PHP que enviará el mail (Es la dirección que encuentran en el código Actionscript de arriba):
Código :
<?php
$cuerpo = "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n"
. "Apellidos: " . $HTTP_POST_VARS["apellidos"] . "\n"
. "Email: " . $HTTP_POST_VARS["email"];
if(mail("tuCorreo@recibir.com","Forma de contacto",$cuerpo)){
echo "respuestaPHP=Mensaje enviado";
}else{
echo "respuestaPHP=Error, mensaje no enviado";
};
?>Lo guardamos con el nombre enviarCorreo.php
Ahora solo subimos los archivos al servidor (hay que subirlos a un servidor que pueda enviar correo, si no, no funcionará), el HTML que contiene el SWF, el SWF y el PHP.
Capturamos datos y presionamos enviar, debe verse de la siguiente manera:

¡Listo, tenemos nuestro formulario de envío!
Ahora solo nos resta (si deseamos) cambiar los campos por los que necesitamos y agregarle las validaciones necesarias.

Me gusto la manera tan digerible en la que explicates el problema, pero hasta no ver no creer je je je. suerte y grax, cuando tenga los resultados te informaré grax.
Por aprendis el 15 de Noviembre de 2007
por que me sale ese error algo hize mal
??????????
ayuda por favor
Por APRENDIS el 15 de Noviembre de 2007
1120: Acceso a una propiedad lbError no definida.
1120: Acceso a una propiedad lbRespuesta no definida.
AHORA QUE ESTARE HACIENDO MAL??????
Por Alfredo el 28 de Noviembre de 2007
TypeError: Error #2007: El valor del parámetro text debe ser distinto de null.
at flash.text::TextField/set text()
at MethodInfo-1()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
Hice el siguiente formulario:
http://www.aure-quim.com/Formulario/formulario.html
Lo llenas y a la hora de mandar, sale ese error, aunque si manda el mensaje al correo asignado, sale esa ventana y no te dice si se envio o no.
Espero que me puedan ayudar, gracias.
at flash.text::TextField/set text()
at MethodInfo-213()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
Gracias y slds!
Si comento// la siguiente linea
Código :
function completeHandler(event:Event):void { //lbRespuesta.text=event.target.data.respuestaPHP; }el error desaparece por lo que entiendo que no esta llegando la respuesta desde php. Es asi?
Yo lo estoy probando sobre xampp (localHost), voy a ver sobre un server "real", pero no tengo muchas esperanzas... alguna ayudita?
Gracias.
Creattive :
Yo lo estoy probando sobre xampp (localHost), voy a ver sobre un server "real", pero no tengo muchas esperanzas... alguna ayudita?
Sr. QUHO :
Ahora solo subimos los archivos al servidor (hay que subirlos a un servidor que pueda enviar correo, si no, no funcionará), el HTML que contiene el SWF, el SWF y el PHP.
Por u2alej el 15 de Diciembre de 2007
Por Renata el 08 de Enero de 2008
Gracias!
//Listener de cargador que espera se COMPLETE la carga para ejecutar la función completeHandler.
cargador.addEventListener(Event.COMPLETE, completeHandler);
//intentamos cargar el pedido y si hay algún error lo detectamos
try {
cargador.load(pedido);
} catch (error:Error) {
lbError.text= "Error en el envío";
}
//Aquí obtenemos la respuesta del PHP para confirmar en flash que todo salió bien o mal.
function completeHandler(event:Event):void {
lbRespuesta.text=event.target.data.respuestaPHP;
}
Y en esta parte en el PHP:
if(mail("tuCorreo@recibir.com","Forma de contacto",$cuerpo)){
echo "respuestaPHP=Mensaje enviado";
}else{
echo "respuestaPHP=Error, mensaje no enviado";
};
Revisa bien los nombres de tus variables y toda la sintaxis.
Saludos!
Por Renata el 10 de Enero de 2008
Por Vero el 25 de Enero de 2008
Si quiero agregar un campo donde el usuario pueda escribir el texto del mail como hago? Muchas gracias.
Código :
Y la agregas en el PHP:
Código :
Por Emmanuel el 16 de Febrero de 2008
te dejo mi mail x las dudas
emmanuelbolli@hotmail.com
Prueba accediendo directamente (por la URL) a tu archivo .PHP (el que envía el correo) y luego revisa tu correo. Si tu servidor funciona, debes recibir un mail.
también recuerda que en:
if(mail("tuCorreo@recibir.com","Forma de contacto",$cuerpo)){
Debes de cambiar "tuCorreo@recibir.com" POR tu dirección y nombre de dominio donde deseas recibirlo, ejemplo:
if(mail("emmanuelbolli@hotmail.com","Forma de contacto",$cuerpo)){
Saludos!
Por Carmen el 28 de Febrero de 2008
Saludos!
Por oracito el 07 de Marzo de 2008
* leer, si, quise decir eso, leer, si quise decir leer, leer eso, es bueno leer eso, si eso dije, no hay duda.
Por Ricardo el 29 de Marzo de 2008
Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables$iinit()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
pero si me registra los datos que yo quiero
Por puelo el 28 de Mayo de 2008
cargador.dataFormat = URLLoaderDataFormat.TEXT;
y se arregla
Por melvin el 27 de Junio de 2008
nombre:
apellidos:
correo:
que hago?
necesito ayuda!!!
Por melvin el 28 de Junio de 2008
solo recibo el mensaje. en blanco
solo me aparece
nombre:
apellido:
correo:
por favor....
Por melvin el 01 de Julio de 2008
y gracias, por el tuto....
Por emanuel el 03 de Julio de 2008
saludos
Por Clary el 08 de Julio de 2008
Por Luis el 11 de Septiembre de 2008
es decir, el lbError, o el lbRespuestas, no me funcionan, eso seria... alguna sugerencia
Gracias de Antemano.
Por rzc el 18 de Septiembre de 2008
TypeError: Error #2007: El valor del parámetro text debe ser distinto de null.
at flash.text::TextField/set text()
at MethodInfo-200()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
estoy bajando el xampp con eso bastara??
Por Bea el 11 de Noviembre de 2008
esque estoy un poco perdida para saber en donde debe ir
gracias
Por xnandresst el 12 de Noviembre de 2008
Por melvin el 12 de Noviembre de 2008
necesito validarlo
ya probe con
if (txtNombre eq ""){
if (txtNombre.text == ""){
Ojo Flash esta ACTIONSCRIPT 3.0
Por Melvin el 12 de Noviembre de 2008
if(txtNombre.text.length<1){
lbError.text="Por favor introduce tu nombre completo";
Por norma el 21 de Noviembre de 2008
Por Cesar Ramirez el 08 de Diciembre de 2008
====
No se pudo cargar la clase o interfaz 'MouseEvent'.
====
No se pudo cargar la clase o interfaz 'URLVariables'.
====
No se pudo cargar la clase o interfaz 'URLRequest'.
====
No se pudo cargar la clase o interfaz 'URLLoader'.
====
No se pudo cargar la clase o interfaz 'Event'.
====
por favor me ayuda?
Gracias.
mi correo cram83@hotmail.com
Por Cesar Ramirez el 08 de Diciembre de 2008
Por Luis L el 10 de Diciembre de 2008
solo recibo el mensaje. en blanco
solo me aparece
nombre:
apellido:
correo:
Por Manson el 10 de Diciembre de 2008
alguien ha solucionado lo de recibir el correo con los campos en blanco?
Muchisimas gracias
Por Rodrigo el 05 de Enero de 2009
Por joseureba el 03 de Marzo de 2009
ReferenceError: Error #1069: No se encontró la propiedad respuestaPHP en String y no hay ningún valor predeterminado.
at MethodInfo-1961()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
Por Lucas el 10 de Marzo de 2009
Alguien conoce alguna solucion?
Por PIONERO69 el 09 de Mayo de 2009
me parece que algo estoy haciendo mal y no logro hacer funcionar el programa seria posible enviarte mis archivos y me digas que estoy haciendo mal??
gracias
Por PIONERO69 el 09 de Mayo de 2009
te envio el error que me da el formato
Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables$iinit()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
gracais
Por saab el 25 de Mayo de 2009
Codigo flash:
function enviar(Mouse:Event):void{
var req:URLRequest=new URLRequest("http://localhost/archivo.php");
req.method=URLRequestMethod.POST;
var vars:URLVariables=new URLVariables;
vars.nombre=nombre_txt.text;
vars.apellidos=apellidos_txt.text;
vars.email=email_txt.text;
req.data=vars;
var ldr:URLLoader=new URLLoader();
ldr.dataFormat=URLLoaderDataFormat.TEXT;
ldr.addEventListener(Event.COMPLETE,onVarsLoaded);
try {ldr.load(req);}
catch(error:Error){nombre_lbl.text="Error de envio";}
}
function onVarsLoaded(event:Event):void{
nombre_lbl.text=event.target.data.respuestaPHP;
}
boton.addEventListener(MouseEvent.CLICK,enviar);
Codigo php:
<?php
$cuerpo="Nombre:".$HTTP_POST_VARS["nombre"]."\n"
."Apellidos:".$HTTP_POST_VARS["apellidos"]."\n"
."Email:".$HTTP_POST_VARS["email"]."\n";
echo "respuestaPHP=Mensaje enviado";
?>
De verdad agradeceria alguien pudiera ayudarme con esto. Gracias
Por MARY el 11 de Junio de 2009
Por mayer el 28 de Julio de 2009
Pues bien, el from me lo envía al correo como si fuera html, me envía lo que es la fuente, color, tipo, etc...que le he puesto a los text del flash, y el nombre del correo sale tachado:
de:
pruebausuario@prueba.com
P ALIGN=\ "JUSTIFY\"><FONT FACE=\"Calibri\" SIZE=\"14\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">asgda</FONT></P>"
para:oscvm@hotmail.com
.....
Mi correo es oscvm@hotmial.com por si quereis responderme ahí directamente.
Por Mensaje en Blanco el 07 de Octubre de 2009
Gracias
Por Ivan el 14 de Octubre de 2009
Por victor el 02 de Diciembre de 2009
como ago todo eso ue dicen tengo que subirla pero no se como poner los codigos para el envio de e-mail
Por joana pinho el 17 de Febrero de 2010
Soy principiante en el tema de formularios, deseo enviarte mi archivo para ver si esta bien. Puedes pasarme tu email
Por guaso69 el 31 de Marzo de 2010
TypeError: Error #2007: El valor del parámetro text debe ser distinto de null.
at flash.text::TextField/set text()
at MethodInfo-1()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
contesta QUHO hay muchos con el mismo problema
Por daff el 07 de Abril de 2010
bueno yo no puse apellidos, y agregué en el flash dos inputs para telefono y comentarios ok, recuerdeen que lo que está entre comillas al principio es cómo lo mandaron desde el flash. suerte!
<?php
$nombre=$_POST["nombre"];
$mail=$_POST["mail"];
$tel=$_POST["tel"];
$comentario=$_POST["comentario"];
$message = 'Nombre: '.$nombre.'<br>E-Mail: '.$mail.'<br>Teléfono: '.$tel.'.<br>Esrcibió el siguiente comentario: '.$comentario;
$charset=utf-8;
$headers="From: ".$nombre."\n"
."Content-type: text/html; charset=UTF-8\n"
. "MIME-Version: 1.0\n"
. "Content-Transfer-Encoding: 8bit\n"
. "X-Mailer: PHP\n";
$subject = "forma de contacto" ;
mail("tumail@tudomino.com", $subject, $message, $headers);
echo "respuestaPHP=Mensaje enviado";
?>
Por jorge el 02 de Mayo de 2010
Por peter ayuda! =( el 06 de Mayo de 2010
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables$iinit()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
Por Lolo el 08 de Mayo de 2010
Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables$iinit()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
Por favor ayudenme! GRACIAS
Por MuDuff el 08 de Junio de 2010
y se modifica el PHP como lo dice
daff-blog
Saludos!
Por Nahanny el 02 de Julio de 2010
porque me sale ese error?
estoy haciendo una galeria de fotos en flash cs5 y me marca ese error y si lo quito me marca mas errores. si me pueden ayudar porfavor...
me mandan la respuesta a este correo
muchismas gracias.. es urgentee
palinga_chida@hotmail.com
Por Nahanny el 02 de Julio de 2010
if (_root._ymouse < 301){
myVar = false;
}
if (_root._ymouse < 300){
myVar = true;
}
if (_root._xmouse < 50) and (myVar == true)
{
imgBar.prevFrame();
imgBar.prevFrame();
imgBar.prevFrame();
}
else
{
imgBar.play();
}
if ((_root._xmouse > 50) && (_root._xmouse < 550) && (myVar == true)){
imgBar.stop();
}
if (_root._xmouse > 550) and (myVar == true)
{
imgBar.nextFrame();
imgBar.nextFrame();
}
}
...................
ese es el codigo que estoi utilizando..
i donde esta else.. es dodnde marca erros.. ayudenmen porfavor mil graciias
Por juliancruz87 el 12 de Agosto de 2010
Por PezVerde el 06 de Octubre de 2010
He utilizado tu post para la pagina que estoy desarrollando y al hacer la prueba del php me llega un mail, por lo que mi servidor está preparado para su envio. Pero, cuando intento que funcione desde el flash que he insertado en un HTML no hace nada cuando le doy al boton enviar.
te dejo mi mail por si me puedes ayudar.
elpezverde@gmail.com
mil gracias!!
Por PezVerde el 06 de Octubre de 2010
¿?
salu2
Por cami el 12 de Enero de 2011
Por Guillermo el 25 de Marzo de 2011
El servidor soporta PHP, busque por todos lados e intente muchas variantes, pero por alguna razon no me funciona. Es AS3 y estoy usando la suite CS5, alguien tiene alguna solucion?
Por maseo el 07 de Abril de 2011
en el codigo as3 en flash verfica esto.
misVariables.nombre = txtNombre.text;
misVariables.apellidos = txtApellidos.text;
misVariables.email = txtEmail.text;
ahora verifica en el codigo php esto.
$cuerpo = "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n"
. "Apellidos: " . $HTTP_POST_VARS["apellidos"] . "\n"
. "Email: " . $HTTP_POST_VARS["email"];
la razon es que en el codigo php escribimos las instancias de flash y por eso les llega el codigo en blanco. verfiquen que en php tengan lo que dice en misVariables osea si el codigo flash dice misVariables.nombre = txt_nombre;
en php debe de ser $HTTP_POST_VARS["nombre"].
eso es todo, espero haber sido de ayuda.
Por joseph_verdun el 14 de Julio de 2011
Por tute el 08 de Noviembre de 2011
No me tira mensaje de error, ni de mensaje enviado. Y mucho menos me llega el mail a mi correo con el mensaje.
Este es el codigo que puse en Flash:
btn_enviar.addEventListener(MouseEvent.CLICK, irAEnviar);
function irAEnviar(event:MouseEvent):void
{
var misVariables:URLVariables = new URLVariables();
misVariables.nombre = nombre.texto.text;
misVariables.email = email.texto.text;
misVariables.mensaje = mensaje.texto.text;
misVariables.telefono = telefono.texto.text;
var pedido:URLRequest = new URLRequest();
pedido.url = "http://www.hnuñez.com.ar/correo/enviarCorreo.php";
pedido.method = URLRequestMethod.POST;
pedido.data = misVariables;
var cargador:URLLoader = new URLLoader();
cargador.dataFormat = URLLoaderDataFormat.VARIABLES;
cargador.addEventListener(Event.COMPLETE, completeHandler);
try {
cargador.load(pedido);
} catch (error:Error)
{
lbError.text= "Error en el envío";
}
function completeHandler(event:Event):void
{
lbRespuesta.text=event.target.data.respuestaPHP;
}
}
-------------------------------------------------------------------------------------------------
Y este es el codigo que puse en el PHP:
<?php
$cuerpo = "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n"
. "E-mail: " . $HTTP_POST_VARS["email"] . "\n"
. "Teléfono: " . $HTTP_POST_VARS["telefono"] . "\n"
. "Mensaje: " . $HTTP_POST_VARS["mensaje"];
if(mail("matiasjordan@hotmail.es","Forma de contacto",$cuerpo)){
echo "respuestaPHP=Mensaje enviado";
}else{
echo "respuestaPHP=Error, mensaje no enviado";
};
?>
--------------------------------------------------------------------------------------------
Di vueltas y vueltas por todos lados y no encuentro el origen del problema..
Quien pueda ayudarme, le estare MUY agradecido..
PD: Si ingreso directamente al link http://www.hnuñez.com.ar/correo/enviarCorreo.php me envia perfectamente el mail, pero obviamente con los contenidos vacios.. Esto quiere decir que mi servidor es apto para mandar correos.
Por jaraujoparraga el 09 de Febrero de 2012