Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/11/2012, 12:58
Avatar de Geghnar
Geghnar
 
Fecha de Ingreso: noviembre-2012
Ubicación: Vigo
Mensajes: 17
Antigüedad: 14 años
Puntos: 2
Respuesta: problema con formulario de contacto

Hola a todos; este es mi primer aporte por lo que os pido paciencia si no lo hago correctamente...

lolosaurio; yo, para el envío de formularios, utilizo PHPMailer desde hace tiempo y me resulta comodísimo, lo puedes descargar desde [URL="http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip/download"]http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip/download[/URL] y te dejo un ejemplo del envío que hago de un formulario cualquiera a ver si te resulta de ayuda.


Código PHP:
<?php

$nombre 
= stripslashes( strip_tags(trim($_POST['nombre'])));

$apellidos = stripslashes( strip_tags(trim($_POST['apellidos'])));

$empresa = stripslashes( strip_tags(trim($_POST['empresa'])));

$nif = stripslashes( strip_tags(trim($_POST['nif'])));

$email = stripslashes( strip_tags(trim($_POST['email'])));  

$direccion = stripslashes( strip_tags(trim($_POST['direccion'])));  

$cp = stripslashes( strip_tags(trim($_POST['cp'])));  

$poblacion = stripslashes( strip_tags(trim($_POST['poblacion'])));  

$provincia = stripslashes( strip_tags(trim($_POST['provincia'])));  

$telf = stripslashes( strip_tags(trim($_POST['telf'])));  

$coment = stripslashes( strip_tags(trim($_POST['coment'])));  


$fecha=date('d \d\e\l n \d\e\l Y');

$cuerpo = "<html><head><title>E-Mail de Contacto</title></head><body>"; 

$cuerpo .= "<strong>CONTACTO WEB XXXXXX</strong><br><br>";

$cuerpo .= "<strong>Enviado el:</strong> " . $fecha . "<br>";

$cuerpo .= "<strong>Nombre:</strong> " . utf8_decode($nombre) ."&nbsp;". utf8_decode($apellidos) . "<br>";

$cuerpo .= "<strong>Empresa:</strong> " . utf8_decode($empresa) . "<br>";

$cuerpo .= "<strong>NIF/CIF:</strong> " . $nif . "<br>";

$cuerpo .= "<strong>E-mail:</strong> " . $email . "<br>";

$cuerpo .= "<strong>Direcci&oacute;n:</strong> " . utf8_decode($direccion) . "&nbsp;". $cp ."<br>";

$cuerpo .= utf8_decode($poblacion) . "&nbsp;". utf8_decode($provincia) ."<br>";

$cuerpo .= "<strong>Tel&eacute;fono:</strong> " . $telf . "<br>";

$cuerpo .= "<strong>Comentarios:</strong> " . utf8_decode($coment) . "<br><br>";

$cuerpo .= "<strong>Pol&iacute;tica de privacidad: Aceptada.</strong><br>";

$cuerpo .= "</body></html>"; 


require(
"../clases/class.phpmailer.php");   //ruta donde tienes los archivos de PHPMailer (class.phpmailer.php, class.pop3.php y class.smtp.php)

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->Host ="HOST";  //servidor de correo saliente

$mail->SMTPAuth = true;

$mail->Port = 25;  //no cambiar a no ser que se especifique otro

$mail->Username = "USER";  //poner el usuario de la cuenta

$mail->Password = "PASSWORD"; //poner el password de la cuenta

$mail->SetLanguage("es");

$mail->CharSet ="utf-8";

$mail->From = ("".$email."");  //cuenta de correo de donde nos llega el formulario

$mail->FromName = ("".utf8_decode($nombre)." ".utf8_decode($apellidos)."");  //campo "De:"

$mail->AddAddress("[email protected]");  //dirección de destino, se pueden añadir más destinatarios

$mail->AddReplyTo("".$email."", "".utf8_decode($nombre)." ".utf8_decode($apellidos)."");  //nombre e e-mail al que se responderá

$mail->IsHTML(true);



$mail->Subject = "Contacto desde su pagina Web";  //asunto

$mail->Body = "".utf8_encode($cuerpo)."";

$mail->AltBody = "";

if(!
$mail->Send()) {

    
$err=1;

    
header("location:fallo_envio.php");

} else {

    
header("location:envio_correcto.php");

}


?>
De todas maneras, a simple vista en tu código veo un pequeño fallo; donde pones:
$mail = $_POST['mail'];

debería poner:
$mail = $_POST['email'];

Si no estoy equivocado...

Espero resultar de ayuda.

Salu2.