所以我的表单有这个问题,我正在使用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();
}
?>
有人可以帮忙吗?
答案 0 :(得分:2)
您是否在php.ini文件中更新了SMTP服务器? Windows通常不会运行smtp服务器,因此您可能必须指定外部服务器。
您需要找到SMTP参数并将其设置为smtp服务器:
SMTP = smtp.domain.com