Foros del Web » Programando para Internet » PHP »

Phpmailer + formulario

Estas en el tema de Phpmailer + formulario en el foro de PHP en Foros del Web. Hola amigos foreros, una vez mas recurro a uds. La cosa es bien simple, tengo un formulario y el cual ingresen los datos las personas ...
  #1 (permalink)  
Antiguo 22/11/2012, 11:06
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Phpmailer + formulario

Hola amigos foreros, una vez mas recurro a uds. La cosa es bien simple, tengo un formulario y el cual ingresen los datos las personas que quieran contactarse conmigo y recibo en php las variables y trabajo con el phpmailer para enviar el mail.

problema ? no me llega el mail.

formulario
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  4. <link rel="stylesheet" type="text/css" href="css/style.css" />
  5. <script src="js/funciones.js"></script>
  6. <title>Instituto Biblico Iglesia de Dios Evangelica</title>
  7. </head>
  8. <!--Encabezado-->  
  9. <body id="contacto">
  10.     <div id="wrap">
  11.         <div id="header">
  12.            
  13.         </div>
  14.        
  15.         <div id="main">
  16.    
  17.             <form class="boxLogin" name="formLogin" method="post" action="">
  18.                 <h1> Login Fichero Virtual </h1>
  19.                     <fieldset class="boxBody">
  20.                         <em>Usuario</em>
  21.                         <input type="text" onkeypress="return expRegularRut(event);" name="usuario" tabindex="1" autofocus required>
  22.                         <a href="#" class="rLink" tabindex="5"></a><em>Contrase&ntilde;a</em>
  23.                         <input type="password" name="password" tabindex="2" required>
  24.                         <input type="submit" class="btnLogin" name="iniciar" value="Login" tabindex="4">
  25.                         <?php
  26.                             if($_SESSION['estado'] == false){
  27.                                 echo "<p id='mensajError'>Usuario y/o contrase&ntilde;a erroneos</p>";
  28.                             }
  29.                         ?>
  30.                     </fieldset>
  31.                 </form>
  32.                
  33.                 <div id="login1vez">
  34.                 <table>
  35.                     <td class="cuadro">Si eres alumno, profesor o administrador para ingresar por primera vez al fichero,
  36.                         utiliza tu rut como usuario y como password (con guion y d&iacute;gito verificador)
  37.                         y aseg&uacute;rate de cambiar tu password a la brevedad.</td>
  38.                 </table>   
  39.                 </div>
  40.                
  41.                 <br>
  42.                 <a href="contactanos2.php"></a>
  43.                 <nav id="avmenu">
  44.                 <br /><br />
  45.                     <h2 class="hide">Menu:</h2>
  46.                     <ul>
  47.                         <li><a href="index.php">Inicio</a></li>
  48.                         <li><a href="sedes.php">Sedes</a></li>
  49.                         <li><a href="noticias.php">Noticias</a></li>
  50.                         <li><a href="conocenos.php">Acerca de nosotros</a></li>
  51.                         <li><a href="contactanos.php">Contactanos</a></li>
  52.                     </ul>
  53.  
  54.                     <div class="announce">
  55.                         No temas, que yo soy contigo; no desmayes, que yo soy tu Dios que te esfuerzo.
  56.                         Siempre te ayudare, siempre te sustentar&eacute; con la diestra de mi justicia" <br><br><strong>Isa&iacute;as 41:10.</strong>
  57.                             <p class="textright"><a href=""></a></p>
  58.                     </div>
  59.                 </nav>
  60.  
  61.                 <article id="content">
  62.                     <section>
  63.                         <?php if(!$consultaEnviada) echo $error; else echo 'Consulta enviada, ¡muchas gracias!';
  64.                         ?>
  65.                         <p><form method="post" action="">
  66.                             Rellena el formulario y contactanos con nosotros:<br />
  67.                             <br />
  68.                             <label>Nombre:</label>
  69.                             <input placeholder="Ingresa tu nombre..." onkeypress="return expRegularLetras(event);" name="nmPer"
  70.                                 autofocus required ><em id="asterisco"> *</em><br /><br />
  71.                             <label>E-mail:</label>
  72.                             <input type="email" name="cEmail" placeholder="[email protected]" required><em id="asterisco"> *</em><br /><br />        
  73.                             <label>Titulo:</label>
  74.                             <input type="text" name="titulo"><em id="asterisco"> *</em><br /><br />  
  75.                             <textarea rows="10" cols="50" name="texto"></textarea><em id="asterisco"> *</em><br>
  76.                             <em id="asterisco"> * Campos Obligatorios</em><br><br>
  77.                             <input type="submit" name="contacto" value="Contactanos">
  78.                         </form></p>
  79.                     </section>
  80.                 </article>
  81.  
  82.             <footer id="footer">
  83.                 <p>Copyright &copy; 2012. Todos los derechos reservados</p>
  84.             </footer>
  85.         </div>
  86. </body>
  87. </html>

Recibo los datos en el MISMO HTML

Código PHP:
Ver original
  1. if(isset($_POST['contacto'])){   
  2.     require_once('libs/class.phpmailer.php');
  3.     require_once('libs/class.smtp.php');
  4.  
  5.     $mail    = new PHPMailer(); // por defecto utiliza la función PHP mail()    
  6.     $emailTo = '[email protected]';
  7.     $nombre  = addslashes($_POST['nmPer']);
  8.     $email   = addslashes($_POST['cEmail']);
  9.     $titulo  = addslashes($_POST['titulo']);
  10.     $mensaje = addslashes($_POST['texto']);
  11.     $subject = 'Envío de correo electrónico mediante PHPMailer';
  12.                                              
  13.     $body = "Se ha recibido una consulta.\n\nNombre: $nombre \n\nE-mail: $email\n\nMensaje: $mensaje";    
  14.     try{
  15.         $mail = new PHPMailer();
  16.         $mail->CharSet = 'UTF-8'; // soporte para ñ,á,é,í...
  17.         $mail->IsMail();                            
  18.         $mail->AddAddress($emailTo);
  19.         $mail->Subject = $subject;
  20.         $mail->From = $email;
  21.         $mail->FromName = $nombre;         // . ' ' . $apellidos;
  22.         $mail->Body = $body;                            
  23.         $consultaEnviada = $mail->Send();        
  24.         if(!$consultaEnviada){
  25.           $error = $mail->ErrorInfo;
  26.         }
  27.  
  28.     }catch (phpmailerException $e) {
  29.         $error = $e->errorMessage();
  30.     }        
  31.    
  32. }
  33. ?>

En la linea 27 y 28 del "formulario" hago un if para que muestre si envio o no el mail.
El cual lo hace mostrandome el mensaje: Consulta enviada, ¡muchas gracias.

Estoy trabajando con apache (xampp), entonces mi pregunta sera ? mi codigo esta bien ? ...
faltaran atributos ? de a poco leo la documentacion del phpmailer.

SAludos y gracias
  #2 (permalink)  
Antiguo 22/11/2012, 11:35
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: Phpmailer + formulario

Pruebalo con este codigo:

Código PHP:
Ver original
  1. $mail = new PHPMailer();
  2.         $mail->Body = $body;
  3.         /*Configuracion del smtp para el envio*/
  4.         $mail->IsSMTP();
  5.         /* Sustituye (ServidorDeCorreoSMTP)  por el host de tu servidor de correo SMTP*/
  6.         $mail->Host = "localhost";
  7.         /* Sustituye  ( CuentaDeEnvio )  por la cuenta desde la que deseas enviar por ejem. [email protected]  */
  8.         $mail->From = $email;
  9.         $mail->FromName = $nombre;
  10.         $mail->Subject = $subject;
  11.         $mail->AltBody = "Consulta";
  12.         $mail->MsgHTML($body);
  13.         /* Sustituye  (CuentaDestino )  por la cuenta a la que deseas enviar por ejem. [email protected]  */
  14.         $mail->AddAddress($email, "mitienda");
  15.         $mail->SMTPAuth = true;
  16.         /* Sustituye (CuentaDeEnvio )  por la misma cuenta que usaste en la parte superior en este caso  [email protected]  y sustituye (ContraseñaDeEnvio)  por la contraseña que tenga dicha cuenta */
  17.         $mail->Username = "[email protected]";
  18.         $mail->Password = "tu contraseña aqui";
  19.         $mail->Send();
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 22/11/2012, 11:40
 
Fecha de Ingreso: noviembre-2012
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: Phpmailer + formulario

Hola,

Veo que en ambos <form> no hay 'action' (action="") ni hay onclick función en <input 'submit'> - es correcto?
__________________
ComfortHost.NET Web Hosting Solutions
Shared, Reseller, VPS, and Dedicated Solutions
Blazing Fast Servers, 24/7 Live Chat & Ticket Support
  #4 (permalink)  
Antiguo 22/11/2012, 12:13
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: Phpmailer + formulario

Cita:
Iniciado por PhilComfortHost Ver Mensaje
Hola,

Veo que en ambos <form> no hay 'action' (action="") ni hay onclick función en <input 'submit'> - es correcto?
Si hay action el cual esta en blanco, ya que, yo recibo el formulario en la misma pagina. No llamo a una pagina externa para recibir los POST. Saludos
  #5 (permalink)  
Antiguo 22/11/2012, 12:14
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: Phpmailer + formulario

Cita:
Iniciado por CoriaWeb Ver Mensaje
Pruebalo con este codigo:

Código PHP:
Ver original
  1. $mail = new PHPMailer();
  2.         $mail->Body = $body;
  3.         /*Configuracion del smtp para el envio*/
  4.         $mail->IsSMTP();
  5.         /* Sustituye (ServidorDeCorreoSMTP)  por el host de tu servidor de correo SMTP*/
  6.         $mail->Host = "localhost";
  7.         /* Sustituye  ( CuentaDeEnvio )  por la cuenta desde la que deseas enviar por ejem. [email protected]  */
  8.         $mail->From = $email;
  9.         $mail->FromName = $nombre;
  10.         $mail->Subject = $subject;
  11.         $mail->AltBody = "Consulta";
  12.         $mail->MsgHTML($body);
  13.         /* Sustituye  (CuentaDestino )  por la cuenta a la que deseas enviar por ejem. [email protected]  */
  14.         $mail->AddAddress($email, "mitienda");
  15.         $mail->SMTPAuth = true;
  16.         /* Sustituye (CuentaDeEnvio )  por la misma cuenta que usaste en la parte superior en este caso  [email protected]  y sustituye (ContraseñaDeEnvio)  por la contraseña que tenga dicha cuenta */
  17.         $mail->Username = "[email protected]";
  18.         $mail->Password = "tu contraseña aqui";
  19.         $mail->Send();
Voy a probar el codigo, vere como me va, ya que voy de salida. Ya que veo una inclusion nueva como el host, que lo habia visto en algunos ejemplos por internet. Saludos

Etiquetas: formulario, html, phpmailer, variables, usuarios
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




La zona horaria es GMT -6. Ahora son las 17:20.