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
![Blue_Colorz_PDT_15 :)](http://www.daboweb.com/foros/Smileys/Blue_Colorz_03_PDT/Blue_Colorz_PDT_15.gif)
</div>';
} else {
$error = '<div class="alert alert-danger" role="alert"><p><strong>Mensaje sin enviar
![Blue_Colorz_PDT_14 :(](http://www.daboweb.com/foros/Smileys/Blue_Colorz_03_PDT/Blue_Colorz_PDT_14.gif)
</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.comAl 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!