Foros del Web » Programando para Internet » PHP »

phpMailer y FileReference (flash)

Estas en el tema de phpMailer y FileReference (flash) en el foro de PHP en Foros del Web. Buenas, Tengo un codigo en phpMailer en el qual quiero que me envie un único e-mail con un archivo adjunto, digo único porque me llegan ...
  #1 (permalink)  
Antiguo 26/07/2006, 08:43
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
phpMailer y FileReference (flash)

Buenas,
Tengo un codigo en phpMailer en el qual quiero que me envie un único e-mail con un archivo adjunto, digo único porque me llegan 3 por separado, la razón es que uso flash, en concreto la función FileReference de flash8, por la qual envio el archivo adjunto al documento de php, la cosa es que funciona si, pero lo envia por separado... el primer e-mail son los datos de los campos que se han introducido, el segundo es un misterio, ya que no llega nada, el tercero es el del archivo adjunto solo.
Os pongo el codigo PHP para que veais como esta:
Código PHP:
<?php
//mediante la clase phpMailer incluimos el php y la ruta de PluginDir que es la misma en este caso
//ja que este archivo se encuentra en la misma ruta, sino deberà canviarse el require y el pluginDir
require "class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir "";
$mail->Mailer "smtp";
//Host del email que usaremos para el envio, con sus user y pass y autentifcicación smtp
$mail->Host "mail.xxxx.com";
$mail->SMTPAuth true;
$mail->Username "xxxx";
$mail->Password "xxxx";
$mail->From "[email protected]";
$mail->FromName "Borsa Treball";
//Por defecto 10, se le aumenta para que los correos gratuitos (algo más lentos) puedan llegar
$mail->Timeout 30;
//aplicamos HTML para visualizar el email en este formato
$mail->IsHTML(true);
//declaramos variables enviadas desde flash
$nombre $_POST["nombre"];
$apellidos $_POST["apellidos"];
$email $_POST["email"];
$telefono $_POST["telefono"];
$direccion $_POST["direccion"];
$poblacion $_POST["poblacion"];
$estudios $_POST["estudios"];
$horario $_POST["horario"];
$curriculum $_POST["curriculum"];
//añadimos el e-mail/s al que enviaremos y el subject y cuerpo que se incluye todos los datos del formulario
$mail->AddAddress("[email protected]");
$mail->Subject "Borsa de treball de $nombre";
$mail->Body "<b>$nombre $apellidos ens envia el seu currículum:<br><br>Nom:</b> $nombre<br><b>Cognoms:</b> $apellidos<br><b>E-mail:</b> $email<br><b>Telèfon:</b> $telefono<br><b>Direcció:</b> $direccion<br><b>Població:</b> $poblacion<br><b>Estudis:</b> $estudios<br><b>Horari preferent:</b> $horario<br><br><b>Currículum:</b><br>$curriculum";
$mail->AltBody "$nombre $apellidos ens envia el seu currículum:      Nom: $nombre     Cognoms: $apellidos        E-mail: $email      Telèfon: $telefono      Direcció: $direccion     Població: $poblacion       Estudis: $estudios       Horari preferent: $horario                     Currículum: $curriculum";
//Incluimos un attach de un archivo que recibimos de flash mediante Filedata y filereference
$archivo $_FILES['Filedata']['tmp_name'];
$archivo_name "curriculum-".$_FILES['Filedata']['name'];
$mail-> AddAttachment($archivo,$archivo_name); 
$mail->Send();
echo 
"estado=OK";
?>
Lo que habia pensado es poner un tiempo(por ejemplo 1 minuto de espera para recibir los datos) al codigo php, en el que reciba todos los datos del usuario y el archivo adjunto y luego lo envie, pero claro no se como hacerlo.
Haber si a alguien se le ocurre alguna idea... o otra diferente que pueda funcionar.
Un saludo y gracias
  #2 (permalink)  
Antiguo 26/07/2006, 10:13
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
nadie tiene alguna idea :_( ...
  #3 (permalink)  
Antiguo 26/07/2006, 11:00
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Creo q vas a tener q repasar el codigo de flash ya q seguramente lo q está pasando es q flash está enviando en 3 fases los datos y x eso te llegan 3 emails diferentes.

Para saberlo con seguridad añade al PHP q te escriba algo en un txt o inserte un registro en una BDD, lo q se te okurra y comprueba si se repite.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #4 (permalink)  
Antiguo 26/07/2006, 11:27
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Mercy por contestar... la verdad es que ese es el problema, la clase FileReference de flash es para subir o bajar archivos al server, yo he pensado en usarla para enviar correo, y funciona, pero se envian por separado, por eso preguntaba si no se podria hacer en el php que he puesto que espera ha recibir todos los datos, no se si se puede, poniendo un tiempo de 1 minuto por ejemplo a que lo reciba todo y lo envie junto ....
No se si lo que pido es posible claro, de php se lo justo.

Gracias de antemano
  #5 (permalink)  
Antiguo 26/07/2006, 11:30
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Yo es q nunca he enviado archivos para adjuntarlos a través de flash... Si hubiera alguna forma de encajarlo con el SendAndLoad y así hacer una sóla petición al PHP.

Es q como tú lo haces lo más seguro es q sean 2 peticiones distintas. Aunque pudieras hacer q el PHP esperase al hacer en segundo envío sería una nueva petición al PHP y no añadir...

De todas formas espero q algun compañero o moderador (¿Cluster? ¿Ande andas?) pueda ayudarte.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #6 (permalink)  
Antiguo 26/07/2006, 13:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
De todas formas espero q algun compañero o moderador (¿Cluster? ¿Ande andas?) pueda ayudarte
.

Yo no sé nada de Flash ni de "Action Script". Sólo sé que PHP espera y toma de $_FILES el archivo que pueva venir de donde sea además que la codificación del formulario ha de ser "multiparte" (no texto plano). Si tienes forma de "revisar" que ese formulario de flash con un campo "file" (o equivalente donde seleccionas el archivo) se controle el tema de la codificación del "formulario" .. hazlo, por ahí puede estar tu problema.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 26/07/2006, 13:06
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Leyendo un poco por encima la información de la clase FileReference parece ser q tú mismo te puedes encargar de subir el archivo al servidor en una ruta específica. Luego podrías enviar por POST además de las variables q ya enviabas antes la ruta donde se ha guardado dicho archivo y así realizar un sólo envío.

Aún así deberás revisarlo bien porque el envío en blanco q comentas no me cuadra... Imagino q enviarás el archivo al php a través de esta clase y los campos rellenados a través del SendAndLoad...

Lo normal también es verificar antes de enviar el correo q los elementos q necesitas para q se envien han llegado y estan rellenos.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
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:19.