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

problemas al enviar e-mail

Estas en el tema de problemas al enviar e-mail en el foro de Flash y Actionscript en Foros del Web. Buenas, tengo hecho un formulario para enviar sugerencias, ... se envia bien y sin problemas de acentos, sin embargo el campo de la sugerencia, no ...
  #1 (permalink)  
Antiguo 14/07/2006, 12:49
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
problemas al enviar e-mail

Buenas, tengo hecho un formulario para enviar sugerencias, ... se envia bien y sin problemas de acentos, sin embargo el campo de la sugerencia, no llega bien cuando se usa el "enter" ... usando trace sale correctamente si usamos el intro, pero cuando se envia a traves de php no llega... os pongo a continuación el codigo de flash:

Cita:
// 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.email = contingut_mc.imatges_mc.email_txt.text;
envioMail.cuerpo = contingut_mc.imatges_mc.sugerencia_txt.text;
trace("cuerpo: " + contingut_mc.imatges_mc.sugerencia_txt.text);
envioMail.sendAndLoad("CONTENIDO/email.php", recibirMail, "POST");
};
recibirMail.onLoad = function(exito) {
if (exito) {
if(this.estado == "OK"){
attachMovie("enviado_mc", "enviado_mc", 36);
enviado_mc._x = 525;
enviado_mc._y = 270;
Borrar();
}
} else {
attachMovie("error_mc", "error_mc", 36);
error_mc._x = 525;
error_mc._y = 270;
}
};
Comentar que el campo de texto de sugerencias es multilineas evidentemente y he usado "System.useCodepage = true;" por si era problema de codificacion de flash al enviar la variable pero esta claro que no.
A continuación os pongo el codigo de php que envia el correo:

Código PHP:
<?php
header
('Content-Type: text/html; charset=utf-8'); 
 if(
$_POST['email']){
     
$time date ("l dS of F Y h:i:s A");
    
$sendTo "[email protected]";
    
$subject "\n\n Suggerència de la web de: $nombre";
    
$headers "From: $email \n";
    
$message "Bústia de Suggeriments.\n $nombre ens comenta: \n\n";
    
$message .= " · $cuerpo \n\n";
    
$message .= "fecha:  $time\n";
    
mail ($sendTo$subject$message$headers);
    echo 
"estado=OK";
}
?>
He provado añadiendo "header('Content-Type: text/html; charset=utf-8');" al inicio de la liena del codigo de php, pensado que era problema de la codificacion pero, para mi que esta en el flash, la cadena string de sugerencias en cuanto se usa el enter a apartir de ahi no llega nada más, sin embargo con trace sale correctamente ...
un ejemplo de lo que pasa escribiendo en sugerencias esto:
Cita:
ricard opina:
que la web podria mejorar ...
ohhh...
Pues poniendo esto solo llegaria "ricard opina:" lo siguiente no llega por usar el enter.
La verdad es que estoy algo perdido porque es un tema que lo he ido dejando pero que me parece importante que salga bien.

Si alguien le ha pasado o ve el problema que diga algo porque me interesa que llegue bien el email.
Gracias y un saludo ... y perdon por el post tan largo
  #2 (permalink)  
Antiguo 14/07/2006, 15:44
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 12 años, 7 meses
Puntos: 0
Me parece que el problema esta en el php, proba con esto

Código PHP:
<?php
header
('Content-Type: text/html; charset=utf-8'); 
 if(
$_POST['email']){

$nombre $_POST['nombre'];
$email $_POST['mail'];
$nombre $_POST['nombre'];
$cuerpo $_POST['cuerpo'];
     
$time date ("l dS of F Y h:i:s A");
    
$sendTo "[email protected]";
    
$subject "\n\n Suggerència de la web de: $nombre";
    
$headers "From: $email \n";
    
$message "Bústia de Suggeriments.\n $nombre ens comenta: \n\n";
    
$message .= "$cuerpo \n\n"/* aqui tambien habia un punto de mas antes de la variable $cuerpo */
    
$message .= "fecha:  $time\n";
    
mail ($sendTo$subject$message$headers);
    echo 
"estado=OK";
}
?>
Es una buena costumbre usar siempre arrays superglobales y no globales. Las globales son muy inseguras y funcionan solo si estan habilitadas desde el php.ini
Proba a ver si funka
Suerte!!
  #3 (permalink)  
Antiguo 14/07/2006, 15:47
 
Fecha de Ingreso: abril-2005
Mensajes: 372
Antigüedad: 12 años, 7 meses
Puntos: 0
Aqui me equivoque
Código PHP:
$email $_POST['mail']; //en vez de esta linea va la de abjo
$email $_POST['email']; // ya que tu vriable en el fla es email y no mail como yo puse 
  #4 (permalink)  
Antiguo 15/07/2006, 03:24
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
mercy ;) ... el lunes en el trabajo lo pruebo haber si va, que ahora no tengo el password para subir al ftp :(

ciao!!
  #5 (permalink)  
Antiguo 17/07/2006, 11:58
 
Fecha de Ingreso: julio-2006
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 0
Pues al final tampoco me ha ido bien asi.... he estado probando y al final me decidi por provar la clase phpmailer y asi me ha funcionado bien :) ... dejo aqui el codigo php por si alguien le sirve:
Código PHP:
<?php
//mi php se llama sugerencias.php y esta dentro de includes, por lo tanto la ruta es la misma, dentro de PluginDir no pongo nada por esta razón
require "class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir "";
$mail->Mailer "smtp";
$mail->Host "mail.xxxx.com";
$mail->SMTPAuth true;
$mail->Username "[email protected]";
$mail->Password "imatgexxx";
$mail->From "[email protected]";
$mail->FromName "Suggerències";
$mail->Timeout 30;
$mail->IsHTML(true);
//declaramos variables enviadas desde flash
$nombre $_POST["nombre"];
$email $_POST["email"];
$cuerpo $_POST["cuerpo"];
$mail->AddAddress("[email protected]");
$mail->Subject "Suggerències de $nombre";
$mail->Body "<b>Suggerències des de la web de $nombre<br><br>E-mail:</b> $email<br><br><b>Suggerència:</b><br>$cuerpo";
$mail->AltBody "Suggerències des de la web de $nombre amb el e-mail: $email ens comenta: $cuerpo";
$exito $mail->Send();
//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;    
    
   }    
if(
$exito)
   {
    
//enviamos esto a flash para que nos de OK si llego, sino flash mostrara el error al no recibir la variable
    
echo "estado=OK";

?>
Gracias por todo ;) 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 02:48.