Por solicitud del proveedor de hosting que normamente uso para los websites de mis clientes tengo que mudar la forma de enviar los formularios de contacto usando la clase PHPMailer.
No tengo mucho conocimiento de PHP asi que lei varios articulos e hize un form usando esa clase pero creo que en algun lado hay algun error.
Los codigos son los siguientes:
BOTON en Flash
Código :
on (release) { if (!nombre.length) { status = "Por favor, ingrese su nombre"; } else if (!email.length || email.indexOf("@") == -1 || email.indexOf(".") == -1) { status = "E-mail erroneo o incompleto."; } else if (!mensaje.length) { status = "Escríbanos su mensaje"; } else { status = "Formulario enviado con éxito. En breve le responderemos."; envio = new LoadVars(); envio.onLoad = function(exito) { if (exito) { trace("recibido correcto"); } else { trace("fallo en el envio"); } }; envio.nombre = nombre; envio.email = email; envio.telefono = telefono; envio.ciudad = ciudad; envio.mensaje = mensaje; envio.opcion1 = opcion1; envio.opcion2 = opcion2; envio.fecha = fecha; envio.opcion3 = opcion3; envio.sendAndLoad("correo.php",envio,"POST"); } }
Archivo correo.php
Código PHP :
<? require "includes/class.phpmailer.php"; $mail = new phpmailer(); $mail->PluginDir = "includes/"; $mail->Mailer = "smtp"; $mail->Host = "mimail.dominio.cl"; $mail->SMTPAuth = true; $mail->Username = "[email protected]"; $mail->Password = "password"; $mail->From = "[email protected]"; $mail->FromName = "Dominio"; $mail->Timeout=30; $mail->AddAddress("mail@donde_ira_el_correo.cl"); $nombre=$_POST['nombre']); $email=$_POST['email']); $telefono=$_POST['telefono']); $ciudad=$_POST['ciudad']); $mensaje=$_POST['mensaje']); $opcion1=$_POST['opcion1']); $opcion2=$_POST['opcion2']); $fecha=$_POST['fecha']); $opcion3=$_POST['opcion3']); $mail->Subject = "Prueba de phpmailer"; $mail->Body = "<b>Llegó un mensaje de $nombre con los siguientes datos: Nombre: $nombre E-mail: $email Teléfono: $telefono Ciudad: $ ciudad Opcion 1: $opcion1 Opcion 2: $opcion2 Fecha: $fecha Opcion 3: $opcion3 Mensaje: ------------------------------------------------------------------- $mensaje -------------------------------------------------------------------</b>"; $mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto"; $exito = $mail->Send(); $intentos=1; while ((!$exito) && ($intentos < 5)) { sleep(5); //echo $mail->ErrorInfo; $exito = $mail->Send(); $intentos=$intentos+1; } if(!$exito) { echo "Problemas enviando correo electrónico a ".$valor; echo "<br>".$mail->ErrorInfo; } else { echo "Mensaje enviado correctamente"; } ?>
Aclaro que tengo los dos archivos requeridos en una subcarpeta /includes.
Si alguien fuera tan amable de ver por donde esta mi error y poder guiarme a una posible solucion se lo agradeceria. Desde ya, muchas gracias.
Roberto Pontigo