Foros del Web » Programando para Internet » PHP »

Respuesta automatica formulario php?

Estas en el tema de Respuesta automatica formulario php? en el foro de PHP en Foros del Web. Hola a todos, tengo un problema, y quisiera ver si podrian ayudarme. Tengo un formulario html y ejecutado mediante php con campos de texto y ...
  #1 (permalink)  
Antiguo 13/01/2012, 11:58
 
Fecha de Ingreso: febrero-2010
Mensajes: 113
Antigüedad: 9 años, 9 meses
Puntos: 5
Pregunta Respuesta automatica formulario php?

Hola a todos, tengo un problema, y quisiera ver si podrian ayudarme.

Tengo un formulario html y ejecutado mediante php con campos de texto y varias opciones (cada una de ellas reedirecciona a una direccion de correo diferente), y me gustaria que le llegara un email de confirmacion a mi cliente, pero con una dirección totalmente ajena de las opciones que haya escogido (ejepmlo: selecciona [email protected] y le llega mensaje automatico: [email protected]).

¿como podria hacer esto? he estado buscando informacion por todas partes, pero la verdad es que no me aclaro mucho.

gracias

un saludo
  #2 (permalink)  
Antiguo 13/01/2012, 13:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 5 meses
Puntos: 6
Respuesta: Respuesta automatica formulario php?

Hola.

No lo he mirado, pero mi imagino que con las opciones de la funcion mail lo podrás hacer, no?

Un saludo.
  #3 (permalink)  
Antiguo 13/01/2012, 15:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 113
Antigüedad: 9 años, 9 meses
Puntos: 5
Respuesta: Respuesta automatica formulario php?

Muchas gracias por contestar! Pues lamentablemnte mi nivel en php es nulo (muy basico) por lo que si me preguntas por las funciones mail... pues no tengo mucha idea! Podrias concretarme que opciones, y donde deberia colocarlas?

El formulario que uso es el siguiente:

Código PHP:
Ver original
  1. <?php
  2.     $submit=$_POST['Submit'];
  3.     if($submit == Submit){
  4.     $status = "OK";
  5.     $email=$_POST['email'];
  6.     $message=$_POST['message'];
  7.     $subject=$_POST['subject'];
  8.     $name=$_POST['name'];
  9.     $phone=$_POST['phone'];
  10.     $title=$_POST['title'];
  11.    
  12.     $msg="";
  13.     $msgerror="";
  14.     //error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR);
  15.  
  16.  
  17. if ( strlen($name) < 1 ){
  18.     $msgerror .="name.<BR />";
  19.     $status= "NOTOK";} 
  20.  
  21.  
  22. if (!stristr($email,"@") OR !stristr($email,".")) {
  23.         $msgerror .="mail.<BR />";
  24.         $status= "NOTOK";
  25.     }  
  26.  
  27.     if($title=="mail1"){
  28.         $headers4="[email protected]";
  29.     }else if ($title=="mail2"){
  30.         $headers4="[email protected]";
  31.         $status="NOTOK";
  32.         $msgerror .="title.<BR />";
  33.     }
  34.    
  35. if ( strlen($message) < 10 ){
  36.     $msgerror .="message.<BR/>";
  37.     $status= "NOTOK";} 
  38.  
  39. if($status=="OK"){// echo $query;
  40.     $headers .="Reply-to:$email\n";
  41.     $headers .= "From: $email\n";
  42.     $headers .= "Errors-to: $headers4\n";
  43.     $headers  = "Content-Type: text/html; charset=iso-8859-1\n".$headers;
  44. mail($headers4,$subject,"form wb <BR>
  45. Name: $name
  46. <BR>Mail: $email
  47. <br>Phone: $phone
  48. <br>Title: $headers4
  49. <br>Message: $message","$headers");
  50. $msg=" Ok.";
  51. }
  52.     }
  53. ?>
  54. <html>aqui va el html</html>

Muchas gracias!!!
  #4 (permalink)  
Antiguo 13/01/2012, 15:49
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 5 meses
Puntos: 6
Respuesta: Respuesta automatica formulario php?

Hola. En php, hay una función llamada mail, que te permite enviar mensajes de correo electronico en base a una serie de parámetros que te da la función. Estudia su sintaxis, ya que es muy facil de usar.

De todas formas, si te fijas, en tu codigo ya la estas usando
  #5 (permalink)  
Antiguo 14/01/2012, 14:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 113
Antigüedad: 9 años, 9 meses
Puntos: 5
Respuesta: Respuesta automatica formulario php?

ok, lo he conseguido mediante mail, pero es muy cutre, no se pueden añadir estilos de letra ni imagenes...

entonces informandome acerca del tema, me comentaron que lo ideal (y para las caracteristicas que "pedia") seria usar PHPMailer. Pero no tengo mucha idea del tema... he intentado usarlo, pero no resulta.

El "efecto" que quisiera conseguir es enviar una respuesta automatica (incluira un .html con imagenes, hojas de estilo y un poco mas de texto) y a la vez, el mensaje que yo recibo del cliente, debe incluir sus datos. A esto hay que compaginarlo con el formulario que uso (los errores y la confirmacion).

Código PHP:
Ver original
  1. <?php
  2. require_once 'phpmailer/class.phpmailer.php';
  3. if ($submit=$_POST['Submit'] ($submit == Submit)){
  4.  
  5.         $mail = new PHPMailer(true);
  6.         $mail->AddReplyTo('no_repl[email protected]');
  7.         $mail->AddAddress($_POST['email'], $_POST['message'], $_POST['title'], $_POST['message'], $_POST['phone']);
  8.         $mail->SetFrom('[email protected]');
  9.         $mail->AddReplyTo('email');
  10.         $mail->Subject =  ($_POST['title']);
  11.         $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
  12.         $mail->MsgHTML(file_get_contents('/archivo_html.html'));
  13.         $mail->IsHTML(true);
  14.         $mail->Send();
  15.        
  16.    
  17.     header("$msg= Mensaje enviado.");
  18.     }
  19.  
  20.    
  21.    
  22.    
  23.    
  24.     $msg="";
  25.     $msgerror="";
  26.     //error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR);
  27.  
  28.  
  29. if ( strlen($name) < 1 ){
  30.     $msgerror .="* Nombre.<BR />";
  31.     $status= "NOTOK";} 
  32.  
  33.  
  34. if (!stristr($email,"@") OR !stristr($email,".")) {
  35.         $msgerror .="* Correo incorrecot.<BR />";
  36.         $status= "NOTOK";
  37.     }  
  38.  
  39.     if($title=="opt1"){
  40.         $headers4="[email protected]";
  41.     }else if ($title=="opt2"){
  42.         $headers4="[email protected]";
  43.     }else if($title=="opt3"){
  44.         $headers4="[email protected]";
  45.         $status="NOTOK";
  46.         $msgerror .="* Seleccioni un títol.<BR />";
  47.     }
  48.    
  49. if ( strlen($message) < 10 ){
  50.     $msgerror .="* Error mensaje.<BR/>";
  51.     $status= "NOTOK";} 
  52.  
  53.  
  54. ?>

Muchas gracias!
  #6 (permalink)  
Antiguo 14/01/2012, 14:16
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 8 años, 7 meses
Puntos: 95
Respuesta: Respuesta automatica formulario php?

Con mail() puedes enviar en html, tan solo tendrías que definirlo en las cabeceras.

Código PHP:
Ver original
  1. $header  = 'MIME-Version: 1.0' . "\r\n";
  2. $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

Para dar estilos, lo aconsejable es que metas los estilos inline en el html.



Un saludo
__________________
Web Designer.
Themes-Up!, próximamente
  #7 (permalink)  
Antiguo 14/01/2012, 15:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 113
Antigüedad: 9 años, 9 meses
Puntos: 5
Respuesta: Respuesta automatica formulario php?

gracias por tu respuesta fishdesign.

vale, y el .html lo inlcuyo en el php, o puedo decirle donde esta ubicado?

Prefiero hacerlo desde donde este ubicado (para el tema de las imagenes, y el codigo lo tengo mas limpio)

Gracias!
  #8 (permalink)  
Antiguo 14/01/2012, 16:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 113
Antigüedad: 9 años, 9 meses
Puntos: 5
Respuesta: Respuesta automatica formulario php?

Lo estoy haciendo mediante mail() (el mensaje que me llega) y no reconoce html... o estoy haciendo algo mal?

Código PHP:
Ver original
  1. if($status=="OK"){// echo $query;
  2.     $headers .= "Reply-to:$email\n";
  3.     $headers .= "From: $email\n";
  4.     $headers .= "Errors-to: $headers4\n";
  5.     $headers .= 'MIME-Version: 1.0 \r\n';
  6.     $headers  = 'Content-type: text/html; charset=UTF-8 \r\n';
  7. mail($headers4,$subject, $headers,
  8. "<font face=Myriad Pro, Helvetica, sans-serif size=2 color=#333333><strong>Datos de Informaci&oacute;n de Contacto:</strong></font><br><br><hr width=450px align=left><br><font face=Myriad Pro, Helvetica, sans-serif size=2><strong>Nombre:</strong> $name.<br><strong>Tel&eacute;fono:</strong> $phone.<br><strong>Correo Electr&oacute;nico:</strong> $email.<br><strong>Mensaje:</strong> $message, $headers</font><p></p>");
  9. $msg=" Mensaje enviado!";
  #9 (permalink)  
Antiguo 14/01/2012, 16:31
Avatar de Chico3001  
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico, DF
Mensajes: 112
Antigüedad: 8 años, 1 mes
Puntos: 12
Respuesta: Respuesta automatica formulario php?

Lo estas probando localmente o en servidor?

Para probarlo localmente necesitas tener configurado un servidor de envio de correo en tu computadora
  #10 (permalink)  
Antiguo 14/01/2012, 16:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 113
Antigüedad: 9 años, 9 meses
Puntos: 5
Respuesta: Respuesta automatica formulario php?

en mi servidor remoto!!!
  #11 (permalink)  
Antiguo 14/01/2012, 19:24
Avatar de fishdesign  
Fecha de Ingreso: abril-2011
Ubicación: Málaga
Mensajes: 389
Antigüedad: 8 años, 7 meses
Puntos: 95
Respuesta: Respuesta automatica formulario php?

A simple vista, estás concatenando mal las cabeceras.

Código PHP:
Ver original
  1. $foo = "hello ";
  2. $foo .= "world";
  3.  
  4. echo $foo; //output: hello world
__________________
Web Designer.
Themes-Up!, próximamente

Etiquetas: formulario, html, respuesta, automatico
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:18.