没有从我的表单收到任何电子邮件

时间:2014-03-08 18:16:55

标签: php forms twitter-bootstrap email html-form

所以我的表单有这个问题,我正在使用XAMPP和WAMP来测试我是否已经编写了好的PHP文件,除了我没有收到任何电子邮件之外,一切正常。我不太确定是怎么回事,所以如果有人能帮我这么做,我会非常感激。

这是我的HTML表单:

<form class="form-inline" role="form" method="post" action="contact.php">
<div class="form-group col-md-4">
<label class="titulo-celeste" for="nombre" style="font-weight:normal;">Nombre</label>
<input type="text" class="form-control" id="nombre" name="nombre">
</div>
<div class="form-group col-md-4">
<label class="titulo-celeste" for="correo"style="font-weight:normal;">Email</label>
<input type="email" class="form-control" id="correo" name="correo">
</div>
<div class="form-group col-md-4">
<label class="titulo-celeste" for="asunto"style="font-weight:normal;">Asunto</label>
<input type="text" class="form-control" id="asunto" name="asunto">
</div>
<div class="clearfix"></div><br>
<div class="form-group col-md-12">
<label class="titulo-celeste" for="mensaje"style="font-weight:normal;">Mensaje</label>
<textarea class="form-control" rows="4" id="mensaje" name="mensaje"></textarea>
</div>
<div class="clearfix"></div><br>
<div class="col-md-3 col-md-offset-9">
<button type="submit" class="btn btn-block btn-eiger pull-right">Enviar</button>
</div>
<div class="clearfix"></div>
</form>

这是我的PHP:

<?php
/* Set e-mail recipient */
$myemail = 'carlosxg87@gmail.com';

/* Check all form inputs using check_input function */
$name = check_input($_POST['nombre'], "No sabemos tú nombre");
$subject = check_input($_POST['asunto'], "No escribiste el Asunto");
$email = check_input($_POST['correo']);
$message = check_input($_POST['mensaje'], "Te falto añadir tu Mensaje");

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("Tú dirección de correo no es válida");
}
/* Let's prepare the message for the e-mail */
$message = "

Nombre: $name
Correo: $email
Asunto: $subject

Mensaje:
$message

";

/* Send the message using mail() function */
mail($myemail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.html');
exit();

/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}

function show_error($myError)
{
?>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="shortcut icon" href="img/favicon.ico">

    <title>EIGER - Escuela Internacional de Gerencia</title>

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.css" rel="stylesheet">
    <link rel="stylesheet" href="css/styles.css">
    <link rel="stylesheet" href="css/style.css">
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
<body class="background-light-grey">
<div class="container">
<div class="text-center" style="margin-top:10%;">
    <img src="img/logo.png" alt="" class="img-responsive center-block">
    <h3 class="titulo-celeste">Por favor corrige el siguiente error:</h3>
    <h1 class="titulo-azul"><strong><?php echo $myError; ?></strong></h1>
    <p>Intenta una vez más</p>
    <a href="contacto.html#formulario"><button type="button" class="btn btn-success">Regresar</button></a>
</div>
</div>
</body>
</html>
<?php
exit();
}
?>

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您是否在php.ini文件中更新了SMTP服务器? Windows通常不会运行smtp服务器,因此您可能必须指定外部服务器。

您需要找到SMTP参数并将其设置为smtp服务器:

SMTP = smtp.domain.com

请参阅:http://www.php.net/manual/en/mail.configuration.php