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

Envio de email adjunto con FileReference+PhpMailer

Estas en el tema de Envio de email adjunto con FileReference+PhpMailer en el foro de Flash y Actionscript en Foros del Web. Buenas, estoy intentato enviar un email con un archivo adjunto desde flash, y conseguir lo consigo si..., pero me llegan 3 e-mails .... 1 con ...
  #1 (permalink)  
Antiguo 18/07/2006, 10:35
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Envio de email adjunto con FileReference+PhpMailer

Buenas, estoy intentato enviar un email con un archivo adjunto desde flash, y conseguir lo consigo si..., pero me llegan 3 e-mails .... 1 con el archivo adjunto y sin los campos de formulario, otro totalmente vacio y el último con los datos del cliente que puso en el formulario, claro está, la idea es recibir uno con los datos del formulario y del archivo adjunto.
Os pongo aqui los codigos usados ... será algo largo...
Os pongo primero el de Flash:
Cita:
enviar_btn.onRelease = function() {
Delete();
comprovar();
fileRef.browse(allTypes);
};
// Funcion de Envio de Correo
var envioMail:LoadVars = new LoadVars();
var recibirMail:LoadVars = new LoadVars();
function Enviar() {
envioMail.nombre = contingut_mc.imatges_mc.nombre_txt.text;
envioMail.apellidos = contingut_mc.imatges_mc.apellidos_txt.text;
envioMail.email = contingut_mc.imatges_mc.email_txt.text;
envioMail.telefono = contingut_mc.imatges_mc.telefono_txt.text;
envioMail.direccion = contingut_mc.imatges_mc.direccion_txt.text;
envioMail.poblacion = contingut_mc.imatges_mc.poblacion_txt.text;
envioMail.estudios = contingut_mc.imatges_mc.estudios_txt.text;
envioMail.horario = horari_mc.select_txt.text;
envioMail.curriculum = contingut_mc.imatges_mc.curriculum_txt.text;
envioMail.send("includes/curriculum.php");
};
/////////////////////////
import flash.net.FileReference;

var allTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Archivos permitidos (*.jpg, *.txt, *.pdf, *.doc)";
imageTypes.extension = "*.jpg; *.txt; *.pdf; *.doc";
allTypes.push(imageTypes);

var adjuntar:Object = new Object();

adjuntar.onSelect = function(file:FileReference):Void {
if(!file.upload("direccion de curriculum.php")) {
comprovacio_mc.comprovació_txt.htmlText += "<b>Error al obrir la finestra de selecció.</b><br>";
error();
}
}
adjuntar.onCancel = function(file:FileReference):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Cancelat.</b><br>";
}
adjuntar.onOpen = function(file:FileReference):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Obrint Arxiu: " + file.name + "</b><br>";
}
adjuntar.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Carregant Arxiu " + file.name +": " + Math.round(bytesLoaded/1024) + " KB d'un total de " + Math.round(bytesTotal/1024) + " KB</b><br>";
}
adjuntar.onComplete = function(file:FileReference):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Carrega completa de " + file.name + "<br>Enviat formulari correctament.</b><br>";
Enviar();
enviado();
}
adjuntar.onHTTPError = function(file:FileReference):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Error en la carrega HTTP de " + file.name + "</b><br>";
error();
}
adjuntar.onIOError = function(file:FileReference):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Error de conexió IO de " + file.name + "</b><br>";
error();
}
adjuntar.onSecurityError = function(file:FileReference, errorString:String):Void {
comprovacio_mc.comprovació_txt.htmlText += "<b>Error de seguretat de " + file.name + " error del tipus: " + errorString + "</b><br>";
error();
}
var fileRef:FileReference = new FileReference();
fileRef.addListener(adjuntar);
En el boton enviar_btn "fileRef.browse(allTypes);" esta linea no esta, realmente esta dentro de la funcion comprovar(); que ejecuto con el botón, es solo para que se vea que lo ejecuto ... donde esta file.upload no esta la url ja que no puedo poner la correcta...

Os pongo ahora el codigo PHP
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.******.com";
$mail->SMTPAuth true;
$mail->Username "[email protected]*****.com";
$mail->Password "******";
$mail->From "[email protected]*****.com";
$mail->FromName "Suggerències";
//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]*****.com");
$mail->Subject "Borsa de treball de $nombre";
$mail->Body "<b>$nombre $apellidos ens envia el seu currículum:<br><br>Nom: $nombre<br>Cognoms: $apellidos<br>E-mail: $email<br>Telèfon: $telefono<br>Direcció: $direccion<br>Població: $poblacion<br> Estudis: $estudios<br>Horari preferent: $horario<br><br>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); 
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho 
//para intentar enviar el mensaje, cada intento se hara 5 segundos despues 
//del anterior, para ello se usa la funcion sleep    
$intentos=1
while ((!
$exito) && ($intentos 5)) {
    
sleep(5);
    
//echo $mail->ErrorInfo;
    
$exito $mail->Send();
    
$intentos=$intentos+1;
}
?>
Yo por mi parte veo el problema de la siguiente manera: Cuando envio el archivo con FileReference, el php envia ya el e-mail sin atender al envio del formulario, que se envia posteriormente con LoadVars, y esto no se como resolver para que se envie junto, supongo que modificando algo de flash y php pero no se como .... ahora bien, el tercer mail es un misterio ... la verdad.

Espero que alguno lo haya intentado y sepa como solucionarlo y me heche un cable ...
CIAO y mercy por cualquier ayuda!!
  #2 (permalink)  
Antiguo 19/07/2006, 09:38
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Bueno me escribo a mi mismo para que suba algo mi post ... y quien sabe si alguien lo ve y me hecha un cable ... yo sigo = he probado de varias maneras pero nada sigo sin solucionarlo.
Saludos!!!
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 14:02.