Formulario PHP

  • Autor Autor astudiodigital
  • Fecha de inicio Fecha de inicio
A

astudiodigital

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola espero me puedan ayudar miren el problema no es muy grave ya que el formulario funciona de maravillas solo que tengo un problema. Cuando recibo el email de consulta y le doy responder no sale el email de la persona que consulta. Que codigo deberia poner agradezco la ayuda.

<?php

error_reporting(0);



if(isset($_POST['username']) && !empty($_POST['username']) &&


isset($_POST['password']) && !empty($_POST['password']) &&


isset($_POST['Nombre']) && !empty($_POST['Nombre']) &&


isset($_POST['email']) && !empty($_POST['email']) &&


isset ($_POST['Tel']) && !empty($_POST['Tel']) &&


isset ($_POST['Estado']) && !empty($_POST['Estado'])) {


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



if(!preg_match("/[A-Za-z0-9\._%-]+\@[A-Za-z0-9\._%-]+/",$email)) { header("Location: NL-ko.htm"); exit; }



$link = mysql_connect("localhost","wwwalber_x","punk");


mysql_select_db("wwwalber_z",$link);


mysql_query("INSERT INTO usuarios (username,password,Nombre,email,Tel,Estado) VALUES ('".mysql_real_escape_string($_POST['username'])."','".mysql_real_escape_string($_POST['password'])."','".mysql_real_escape_string($_POST['Nombre'])."','".mysql_real_escape_string($email)."','".mysql_real_escape_string($_POST['Tel'])."','".mysql_real_escape_string($_POST['Estado'])."')",$link);



?>

<meta HTTP-EQUIV="Refresh" CONTENT="1; URL=http://www.alberti.mx"/>

<?php


$my_error = mysql_error($link);





if(!empty($my_error)) {


header("Location: http://www.alberti.mx/html/error.html");


} else {



include("class.phpmailer.php");


include("class.smtp.php");




$scriptUrl = "http://www.alberti.mx/html/visitar.php?email=".$email;




$mail = new PHPMailer();


$mail->IsSMTP();


$mail->SMTPAuth = true;


$mail->SMTPSecure = "ssl";


$mail->Host = "smtp.gmail.com";


$mail->Port = 465;


$mail->Username = "solanasnet@gmail.com";


$mail->Password = "punkillo";



$mail->From = "solanasnet@gmail.com";


$mail->FromName = "Hola {$_POST['password']}";

$mail->Subject = "Bienvenido/a a Alberti Photography: {$_POST['password']}";



$mail->MsgHTML("Estimado/a {$_POST['password']} tu consulta fue enviada con exito, en el menor tiempo posible nos pondremos en contacto contigo.<br>
Te invitamos a seguir visitando la pagina de Fotografia ::: ALBERTI PHOTOGRAPHY :::| <br>En nuestra pagina encontrara servicios de calidad en todos los aspectos.<br><br>::: ALBERTI PHOTOGRAPHY ::: <br><br><a href='http://www.alberti.mx' target='_blank'> Alberti Photography / Sello de Impacto y Estilo </a> <br><br>Contenido de su Consulta : <br><br>Nombre: {$_POST['password']}<br>Mensaje: {$_POST['Estado']}<br>Muchos Saludos a {$_POST['username']} ! <br>");


$sendTo = "direccion@alberti.mx";
$subject = "Formulario de Contacto";
$username = $_POST["username"];
$Estado = $_POST["Estado"];
$password = $_POST["password"];
$Nombre = $_POST["Nombre"];
$Tel = $_POST["Tel"];
$headers .= "";
$message = "\nCiudad: " . $username . "\nColonia: " . $Nombre . "\nTelefono: " . $Tel . "\nMensaje: " . $Estado . "\nNombre: " . $password ;
mail($sendTo, $subject, $message, $headers);



$mail->AddAttachment("files/files.zip");


$mail->AddAttachment("files/img03.jpg");


$mail->AddAddress($email, "Destinatario");

$mail->IsHTML(true);



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

echo "Error: " . $mail->ErrorInfo;

} else {


header("Location: NL-ok2.htm");

}


}


} else {


header("Location: http://www.alberti.mx/html/error.html");


}

?>
 
Intenta agregar el E-mail al contenido del mensaje.
PHP:
$_POST['Estado'] = "{$_POST['Estado']}\n\n{$_POST['email']}";

Seria bueno colocar esto después de:
PHP:
isset ($_POST['Estado']) && !empty($_POST['Estado'])) {

:encouragement:

Por cierto, no es posible suplantar el correo, es por eso que debes responder manualmente al E-mail correcto, ya que tu servidor es el que manda el correo, y no el usuario desde su E-mail.

El codigo anterior, solo sirve para que el E-mail este al final del correo, y así facilitarte las cosas para responder.
 
Gracias Iota te agradezco la respuesta lo voy a probar a ver si queda.
Saludos.:encouragement:
 
En vez de poner esto

PHP:
 $_POST['Estado'] = "{$_POST['Estado']}\n\n{$_POST['email']}";


mejoralo asi:

PHP:
 $_POST['Estado'] = ' '.$_POST['Estado'].' \n\n '.$_POST['email'].' ';
 
El esta usando PHPMailer no la funcion mail de php.
Por lo cual el email no se envia desde su server, como comentaron anteriormente, el lo tiene configurado que el mail se envie desde una cuenta de gmail.

Con PHPMailer para darle reply y que te ponga la direccion que corresponde hay que usar:

PHP:
$mail->AddReplyTo($email, $name);

Donde $email y $name corresponden a lo que ingreso el usuario en el formulario de consulta para esos campos.

El problema en este caso especifico es que esa instruccion no va a funcionar porque gmail no permite cambiar el replyto de los correos.
Deberias usar otro servidor o cambiar y usar la funcion mail de php donde ahi si el mail se enviaria desde tu server y puedes configurar la direccion de replyto.
 
Gracias CHAPI y si lo cambio para el email de mi dominio funciona ?
En que parte va esa linea que me pusites ?
 
Si el mail de tu dominio permite cambiar el replyto a una direccion distinta de la cual se esta enviando realmente el mail entonces si va a funcionar.

Y eso iria en cualquier lugar despues de:

$mail = new PHPMailer();

Y antes de donde se envia el mail.
 
Atrás
Arriba