Foros del Web » Creando para Internet » Flash y Actionscript »

Formulario Fla.

Estas en el tema de Formulario Fla. en el foro de Flash y Actionscript en Foros del Web. hola gente.. como andan? tengo un problema con el formulario fla. copie un monton de codigos y ninguno me manda el mail, hasta que encontre ...
  #1 (permalink)  
Antiguo 11/11/2008, 08:40
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 9 años, 5 meses
Puntos: 0
Formulario Fla.

hola gente.. como andan?

tengo un problema con el formulario fla. copie un monton de codigos y ninguno me manda el mail, hasta que encontre uno que anda perfecto. Pero me falta una parte que seria que me avise cuando el mensaje se envio.. se entiende? y no tengo idea como hacerlo.. alguien me ayuda por favor !!.


mil gracias.

lau

le paso mi codigo>

onClipEvent (load) {
function enviarFormulario() {
//ruta = this;
// compruebo que el campo nombre y apellidos no esté vacío
if (isBlank(nombreV)) {
_parent.submitForm_mc.avisar("Es necesario rellenar el campo Nombre y Apellidos");
Selection.setFocus("nombreV");
Selection.setSelection(0, 0);
} else {
// compruebo que el correo electrónico no esté vacío
if (isBlank(emailV)) {
_parent.submitForm_mc.avisar("Es necesario rellenar el campo Correo Electrónico");
Selection.setFocus("emailV");
Selection.setSelection(0, 0);
} else {
// compruebo que el correo electrónico esté bien escrito
if (!isMail(emailV)) {
_parent.submitForm_mc.avisar("El campo Correo Electrónico no es correcto");
Selection.setFocus("emailV");
Selection.setSelection(0, emailV.length);
} else {

if (isBlank(consultaV)) {
_parent.submitForm_mc.avisar("Es necesario rellenar el campo Consulta");
Selection.setFocus("consultaV");
Selection.setSelection(0, 0);
} else {
if (isBlank(telV)) {
datosUser.telefono = "No cumplimentado";
} else {
datosUser.telefono = telV;
}
datosUser.nombre = nombreV;
datosUser.email = emailV;
datosUser.consulta = consultaV;
datosUser.sendAndLoad("enviar_email.php", respuesta, "POST");
// el asp debe responder error=0 si el envío se hizo bien
}
}
}
}
}
}
  #2 (permalink)  
Antiguo 11/11/2008, 09:01
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.455
Antigüedad: 9 años, 5 meses
Puntos: 53
De acuerdo Respuesta: Formulario Fla.

Saludos, te voy a poner la función que utilizo yo para enviar correos, con flash y php, ahi te pongo la explicación de c/u. AUTOR: Paco Naranjo.

Código:
/*
Esta función se encarga de enviar el email.
Usa un objeto LoadVar para enviar el email y se programa el evento 
onload de dicho objeto para recibirla respuesta del servidor.
*/
function enviar() {
	trace(t_nombre.text);
	//se crea un nuevo objeto LoadVars y se carga con los datos que vamos a enviar.
	datos_email.nombre =t_nombre.text;
	datos_email.email =t_email.text;
	datos_email.texto =t_texto.htmlText;
	//
	datos_email.estado ="";
	//Se programa la función que se ejecutara al recibir la respuesta del servidor
	datos_email.onLoad = function() {
		/*
		al ejecutarse la función dentro del objeto loadVars, debemos usar 'this'
		para referirnos a 'datos_email'.
		'estado' es una variable que nos devuelve el scrip php, nos referimos a ella
		como this.estado.
		*/
		trace(this);
		trace(this.estado);
		if (this.estado == "enviado") {
			//si el email se ha enviado, vamos al fotograma 2.
			gotoAndStop(3);
		} else {
			//en caso contrario, vamos al fotograma 3
			gotoAndStop(4);
		}
	};
	//se envian los datos usando sendAndLoad.
	datos_email.sendAndLoad("enviar_email.php", datos_email, "post");
	gotoAndStop(2)
	}
suerte
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #3 (permalink)  
Antiguo 11/11/2008, 09:05
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 294
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: Formulario Fla.

Cita:
Iniciado por gVenom Ver Mensaje
Saludos, te voy a poner la función que utilizo yo para enviar correos, con flash y php, ahi te pongo la explicación de c/u. AUTOR: Paco Naranjo.

suerte
gVenom, tienes algún código para hacer esto mismo, pero con ASP? y que sea actionscript 3?
__________________
padres frikis | Regalos
  #4 (permalink)  
Antiguo 11/11/2008, 09:16
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.455
Antigüedad: 9 años, 5 meses
Puntos: 53
Respuesta: Formulario Fla.

Cita:
Iniciado por indie81 Ver Mensaje
gVenom, tienes algún código para hacer esto mismo, pero con ASP? y que sea actionscript 3?
Hola, no estoy seguro dejame buscar y ahora te respondo
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #5 (permalink)  
Antiguo 11/11/2008, 09:22
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.455
Antigüedad: 9 años, 5 meses
Puntos: 53
Respuesta: Formulario Fla.

Cita:
Iniciado por indie81 Ver Mensaje
gVenom, tienes algún código para hacer esto mismo, pero con ASP? y que sea actionscript 3?
indie81 te sirve enviar un correo solo con AS3?
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #6 (permalink)  
Antiguo 11/11/2008, 09:25
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 294
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: Formulario Fla.

Cita:
Iniciado por gVenom Ver Mensaje
indie81 te sirve enviar un correo solo con AS3?
Te refieres a que no necesitaría usar ASP ni PHP? pensaba que era necesario usar uno de esos lenguajes de programación para hacer el envío. Si un código de AS3 puede hacer el envío sólo, sí que me vale, de hecho sería mucho más fácil...

Ya me dirás, gracias por tu tiempo.
__________________
padres frikis | Regalos
  #7 (permalink)  
Antiguo 11/11/2008, 09:33
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.455
Antigüedad: 9 años, 5 meses
Puntos: 53
De acuerdo Respuesta: Formulario Fla.

Siguiendo con las cosas buenas que trae ActionScript 3 hoy veremos como enviar correos desde flash utilizando solamente ActionScript. Para ello usaremos la clase 'Socket', que se encuentra dentro del paquete 'flash.net'.

Primero creemos una clase a la que llamaremos SendMail, en primera instancia importamos las clases a utilizar:
Código:
package clases {
   //Importamos clases a utilizar
   import flash.net.Socket;
   import flash.errors.*;
   import flash.events.*;
   import flash.utils.*;
}
De todas las que tenemos allí, la de mayor importancia es la "flash.net.Socket". Esta clase permite a ActionScript crear una conexión ó Socket para leer o escribir datos. Una vez que importamos las clases empezamos a codificar ya la clase en si, declaramos algunas variables a utilizar y el constructor de la clase

Código:
public class SendMail extends Socket {
      private var response:String;
      private var conectado:Boolean = false;
      private var shost:String;
      private var errorLog:String = "";
      //Constructor de la clase
      public function SendMail(host:String = null, port:int = 0) {
      //Llamamos al constructor de la super clase
      shost = host;
          super(host, port);
          configureListeners();
      }
}
Dentro de las variables tenemos:
• response: Donde almacenaremos la respuesta o información recibida por el servidor
conectado: que nos permitirá saber si la conexión al Socket fue exitosa o no
• shost: Aquí almacenaremos el nombre del host, ya veremos más adelantes para que la usaremos
Nuestra clase extiende de Socket; es por ello que en nuestro constructor llamamos al constructor de la súper clase, le pasamos el host, que bien puede ser, o la dirección IP o el nombre del servidor de correo y el puerto a conectarnos. Generalmente es el 25. Una vez hecho esto tenemos un método llamado configureListeners():

Código:
private function configureListeners():void {
     addEventListener(Event.CONNECT, connectHandler);      
      addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
Asignamos lo manejadores de evento a utilizar. Esta vez solo usaremos el "Event.CONNECT", que se llama una vez que la conexión al host es establecida y el 'ProgressEvent.SOCKET_DATA', que es llamado cuando se recibe alguna respuesta del servidor.

Código:
private function connectHandler(event:Event):void {
    //Si el servidor establece la conexión, cambiamos el valor de la variable
    conectado = true;
}
private function socketDataHandler(event:ProgressEvent):void {
    readResponse();
}
En la primera se coloca el valor 'true' a la variable conectado y en la segunda se llama a una función llamada readResponse(). Cada vez que el servidor genera o envía una respuesta a los datos enviados

Código:
private function readResponse():void {
    var str:String = readUTFBytes(bytesAvailable);
    response += str;
    trace(response.toString());
}
Arriba vemos la función readResponse(), que imprime mediante el trace. Los datos de respuesta del servidor aparecen mediante la propiedad readUTFBytes, en forma de string. Luego, vamos a crear un getter que nos permitirá saber si el servidor se encuentra conectado o no

Código:
public function get IsConnect():Boolean{
    return this.conectado;
}
Una vez finalizado esto, vamos a crear la función que se encargara de enviar el mail. Quizas han enviado correo mediante telnet alguna vez, los que no revisen cómo hacerlo.
Es lo que usaremos, veamos la función

Código:
public function sendRequest(sender:String = "[email protected]", reciver:String = "[email protected]", subject:String = null, msg:String = null):void {      
    response = "";
    //Cuando establecimos la coneción al host, estribimos en el flujo del socket. la información 
    //para el envio del mail
    try {          
            this.writeUTFBytes ("HELO "+shost+"\r\n");
            this.writeUTFBytes ("MAIL FROM: <"+sender+">\r\n");
            this.writeUTFBytes ("RCPT TO: <"+reciver+">\r\n");
            this.writeUTFBytes ("DATA\r\n");
            this.writeUTFBytes ("From : "+sender+"\r\n");
            this.writeUTFBytes ("To : "+reciver+"\r\n");
            this.writeUTFBytes ("Subject: "+subject+"\r\n");
            this.writeUTFBytes ("Mime-Version: 1.0\r\n");
            this.writeUTFBytes ("Content-Type: text/html; charset=UTF-8; format=flowed\r\n");
            this.writeUTFBytes (msg+"\r\n");
            this.writeUTFBytes (".\r\n");
    }
    catch(e:IOError) {
        trace(e);
    }
    flush();
}
La función recibimos los siguientes datos
• sender: El correo de la persona que envía
• reciver: A quien va dirigido el mail
• subject: Asunto del correo
• msg: Cuerpo del mensaje en si

Luego el método writeUTFBytes se encarga de escribir datos en el flujo del socket. Los datos escritos utilizando este método no son transmitidos inmediatamente si no que se colocan en cola y son transmitidos una vez que se ejecuta el método flush(), que tenemos más abajo.

Esto es todo lo que necesitamos para enviar mails desde flash con AS3.

Espero que te ayude para lo que estas buscando.

Suerte
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #8 (permalink)  
Antiguo 11/11/2008, 09:36
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 294
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: Formulario Fla.

Justo mientras esperaba tu respuesta, he seguido buscando, y he llegado a este foro donde explicaban esto mismo... y veo que justo es el mismo que me has pasado.

Pues voy a probar a ver qué tal...

gracias!
__________________
padres frikis | Regalos
  #9 (permalink)  
Antiguo 11/11/2008, 09:43
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.455
Antigüedad: 9 años, 5 meses
Puntos: 53
Respuesta: Formulario Fla.

Cita:
Iniciado por indie81 Ver Mensaje
Justo mientras esperaba tu respuesta, he seguido buscando, y he llegado a este foro donde explicaban esto mismo... y veo que justo es el mismo que me has pasado.

Pues voy a probar a ver qué tal...

gracias!
Seguro que de ahí lo agarré, yo te lo pasé del word que tengo guardado con todo lo que me encuentro en la red de tutoriales. Espero que te sirva
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #10 (permalink)  
Antiguo 11/11/2008, 10:03
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 294
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: Formulario Fla.

gVenom, he probado y no funcionaba, en concreto el problema es que no conecta con el servidor. Y es que he preguntado a un programador, y resulta que tenemos capado el puerto 25. Así que no va a ser posible hacerlo así, tendré que usarlo como pedía al principio, con el apoyo de ASP para hacer el envío.

Si tienes una forma de hacerlo así ya me dirás.

Saludos.
__________________
padres frikis | Regalos
  #11 (permalink)  
Antiguo 11/11/2008, 10:24
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.455
Antigüedad: 9 años, 5 meses
Puntos: 53
Respuesta: Formulario Fla.

y porq simplemente no utilizas otro puerto?
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
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 09:08.