Comunidad de diseño web y desarrollo en internet online

Problema con phpmailer y flash

Citar            
MensajeEscrito el 21 Ago 2011 08:37 pm
Hola hasta hace poco en todas las webs que hacia (flash as2) en la pestaña "contacto" tenia un formulario que enviaba mails por php y funcionaba perfecto.

ESTA ES LA ACCIÓN QUE TENÍA EL BOTÓN EN EL FLASH:


enviar = function () {
if (email_txt.text.length>0 && nombre_txt.length>0 && mensaje_txt.length>0) {
if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
form_lv = new LoadVars();
form_lv.nombre = nombre_txt.text;
form_lv.mail = email_txt.text;
form_lv.mensaje = mensaje_txt.text;
form_lv.sendAndLoad("send.php", form_lv, "POST");
mensaje_txt.text = "Enviando Mensaje..";
nombre_txt.text = "";
email_txt.text = "";
form_lv.onLoad = function() {
trace("LLEGO");
if (this.estatus == "ok") {
mensaje_txt.text = "Su mensaje fue enviado...";
nombre_txt.text = "";
email_txt.text = "";
} else {
mensaje_txt.text = "Problemas con el servidor...\nIntente nuevamente";
}
};
} else {
email_txt.text = "Escriba un mail correcto";
}
} else {
if (email_txt.text.length==0)
email_txt.text = "Dato Necesario";
if (nombre_txt.text.length==0)
nombre_txt.text = "Dato Necesario";
if (mensaje_txt.text.length==0)
mensaje_txt.text = "Dato Necesario";
}
};

enviar_btn.onRelease = enviar;


Y ESTO EN PHP:

<?php
if(isset($_POST["nombre"]) /*&& isset($_POST["titulo"])*/ && isset($_POST["mail"]) && isset($_POST["mensaje"]) ){
$fecha = date("d-m-Y H:i");
$sendTo = "[email protected]";
$subject = "E-Mail desde la web";
// los MIME headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$_POST['nombre']." <".$_POST['mail'].">\r\n";
$headers .= "Reply-To: " . $_POST["mail"];
//el cuerpo del mail
$message = "Nombre: ".$_POST["nombre"]."\r\n<br>";
$message .= "Fecha: ".$fecha."\r\n<br>";
$message .= "E-Mail: ".$_POST["mail"]. "\r\n<br>";
$message .= "Mensaje: \n".$_POST["mensaje"];
//enviar
mail($sendTo, $subject, $message, $headers);
//respuesta a flash
echo "&estatus=ok&";
}
?>

Pero ahora la empresa del hosting me comunico que por seguridad ya no la utilizan mas y la reemplazan por phpmailer. La verdad probe de muchisimas formas y ninguna me funciono.

ESTO ES LO QUE ME MANDARON:

El problema lo vemos en que intenta usar la función mail() para el envío de correo. Esta caracteristica se esta desactivando de nuestras plataformas dado a los riesgos en materia de seguridad que trae aparejada.
En vez de utilizar la función mail(), utilice PHP Mailer, http://phpmailer.worxware.com/ que presenta muchas ventajas sobre la función mail nativa de php.
Le dejamos un link directo para descargarlo:
http://downloads.sourceforge.net/project/phpmailer/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fphpmailer%2Ffiles%2Fphpmailer%2520for%2520php5_6%2FPHPMailer%2520v5.1%2F&ts=1294954162&use_mirror=ufpr
El link descarga un archivo comprimido donde posee todo lo necesario. Tanto en el sitio web http://phpmailer.worxware.com/ como en el README dentro del archivo descargado puede encontrar instrucciones detalladas de como debe modificar su formulario de envío de correos (en ingles). Puede encontrar instrucciones en español en el siguiente enlace http://www.programacion.com/articulo/uso_de_la_clase_phpmailer_213
Básicamente debe copiar a su sitio 2 clases solamente:
- class.phpmailer.php
- class.smtp.php
Esos 2 archivos los debe colocar dentro del directorio donde se encuentra su web. A continuación le adelantamos un simple ejemplo del código que puede utilizar para realizar envíos:
<?php
require "includes/class.phpmailer.php";
$mail = new phpmailer();
//parámetros de configuración del servidor de envío
$mail-Mailer = "smtp";
$mail->Host = "servidor.dominio.com";
$mail->Username = "Nombre-de-usuario";
$mail->Password = "******************";
//en caso de que el servidor utilice autenticación para conectarse especificamos
$mail->SMTPAuth = true;
//si el puerto utilizado no es el predeterminado (25) debemos especificar explícitamente el puerto de conexión utilizado por el servidor
$mail->Port = 25;
$mail->From = "[email protected]";
$mail->FromName = "Nombre del usuario";
$mail->Timeout=30;
//Indicamos cual es la dirección de destino del correo
$mail->AddAddress("[email protected]");
$mail->Subject = "Colocamos aquí el asunto del correo";
$mail->Body = "Dentro de Body colocamos el cuerpo del correo electrónico“;
$seEnvio = false;
//se realizan hasta 5 intentos de envio de correo
$intentos=0;
while ((!$seEnvio) && ($intentos < 5)) {
sleep(5);
$seEnvio= $mail->Send();
$intentos=$intentos+1;
}
if(!$seEnvio)
{
echo “Ocurrio un error al intentar enviar el correo “;
echo “
“.$mail->ErrorInfo;
}
else
{
echo “El mensaje de correo electrónico se envió correctamente”;
}
?>
 Note, que para poder llevar a cabo esto, es necesario cumplir lo siguiente:
- La cuenta de mail utilizada para enviar (FROM) debe existir, es decir que si no posee una, debe crearla
- Debe colocar el usuario y contraseña de la misma.


COMO PUEDO SOLUCIONARLO? PROBE MILES DE ALTERNATIVAS Y NINGUNA FUNCIONO.
MUCHAS GRACIAS!

Por jotapege

3 de clabLevel



 

safari
Citar            
MensajeEscrito el 21 Ago 2011 10:03 pm
movido a flash

Por Mariux

BOFH

7756 de clabLevel

28 tutoriales
15 articulos

Genero:Femenino   Héroes Editores

Diseñadora & ilustradora

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.