Autor Tema: Formulario php no llega al correo  (Leído 138 veces)

Desconectado cmuneta

  • Newbie
  • *
  • Mensajes: 1
  • www.daboweb.com
Formulario php no llega al correo
« en: 05 de Septiembre de 2017, 02:31:13 pm »
Hola, soy nueva en el foro. He diseñado una web con Dreamweaver basada en una plantilla bootstrap. El problema está en el formulario de contacto, no me llega nunca al correo. He consultado otros hilos para intentar solucionar el problema, pero nada. Tengo la web alojada en un servidor de pago. También aprovechando quisiera me dijérais si está bien configurado para que llegue con los caracteres de tildes y ñ.

Este es el código html de lo que se refiere al formulario, ya he configurado en el header <meta charset="utf-8"> :

<form id="contact-form" class="contact" name="contact-form" method="post" action="contacto.php">
                           
              <div class="form-group">
           
              <input type="text" name="nombre" class="form-control name-field" required="required" placeholder="Nombre"></div>
             
              <div class="form-group">
             
              <input type="email" name="email" class="form-control mail-field" required="required" placeholder="Email"></div>
         
              <div class="form-group">
             
              <textarea name="mensaje" id="mensaje" required class="form-control" rows="8" placeholder="Mensaje"></textarea></div>
       
              <div class="form-group">
               
              <button type="submit" class="btn btn-primary">Enviar</button>
                   </div>
              <label for="nospam" class="escondido">¡Si ves esto, no llenes el siguiente campo!</label>
              <input name="nospam" class="escondido" />
                  </form>
                 </div>
                </div>


Y este es el código php:

<?php
    header("Content-type: text/html;charset=\"utf-8\"");
    $error = ""; $mensajeExito = "";

    if ($_POST) {
        if ($_POST['email'] && filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) {
            $error .= "E-mail no válido.<br>";   
        }
        if ($error != "") {
            $error = '<div class="alert alert-danger" role="alert"><p><b>Se generó un error:</b></p>' . $error . '</div>';
        }
      
      
      
      else {
            $nombre = $_POST['nombre'];
            $mail = $_POST['email'];
            $mensajeC = $_POST['mensaje'];
           
            $header = 'From: ' . $mail . " \r\n";
            $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
            $header .= "Mime-Version: 1.0 \r\n";
            $header .= "Content-Type: text/plain";

            $mensaje = "Este mensaje fue enviado por " . $nombre . ",\r\n";
            $mensaje .= "Su e-mail es: " . $mail . " \r\n";
            $mensaje .= "Mensaje: " . $mensajeC . " \r\n";
            $mensaje .= "Enviado el " . date('d/m/Y', time());

            $para = '[email protected]';
            $asunto = 'Mensaje de mi sitio web';

            if (mail($para, $asunto, $mensaje, $header)) {
                $mensajeExito = '<div class="alert alert-success" role="alert">Mensaje enviado con éxito :)</div>';   
            } else {
                $error = '<div class="alert alert-danger" role="alert"><p><strong>Mensaje sin enviar :(</div>'; 
            }
        } 
    }
?>

<?php

if ($_POST['nospam'] != ""){
 // Es un SPAMbot
 exit();

} else {
 // Es un usuario real, proceder a enviar el formulario.

}
 ?>

<head>
<script>alert("Su mensaje se ha enviado correctamente. Responderemos lo antes posible.");</script>
<meta HTTP-EQUIV="REFRESH" content="0; url=index.html">

</head>


La web está subida en esta dirección: www.dbolaonline.com
Al enviar el formulario en la sección contacto, parece que se envía, da el mensaje de enviado con éxito y vuelve al index, como está configurado. Pero nunca me llega al correo, y mi cuenta está bien porque llegan otros correos.

¿Hay algo mal en el código, o según está debería funcionar correctamente?
¿Puede ser error del servidor?, ya actualicé el php a 7.0.  pero no sé si para recibir los formularios habría que configurar alguna otra cosa.
Muchísimas gracias por la ayuda!

Desconectado fvillalba

  • Member
  • ***
  • Mensajes: 481
Re:Formulario php no llega al correo
« Respuesta #1 en: 08 de Septiembre de 2017, 05:11:08 am »
¡Tema ya muy trillado! ¡Lo mejor va a ser que uses PHPMailer! Pregunta en tu hosting si tienen el puerto SMTP 25 bloqueado o usan el alternativo que es el número 587 y va por TLS. Es decir, cifrado!

https://www.comalis.com/ayuda/envio-correos-php-smtp-phpmailer

https://help.dreamhost.com/hc/en-us/articles/216140597-How-do-I-send-PHP-mail-via-SMTP-
Loco de los servidores y de las pantallas con fondo negro y líneas blancas. Heavy user of OSX and GNU/Linux. Microsoft Windows Sucks.

 



condiciones de registro y uso de los foros | Privacidad
el contenido de la web se rige bajo licencia
Creative Commons License