我在网站上使用联系表格,但它没有发送电子邮件,请谁能告诉我这个代码哪里错了?
此表格是从另一个有效的站点复制的,所以我不明白它在哪里失败。我检查了语法,一切似乎都很好。
<?php
/*
Template Name: Contact Page
*/
get_header();
$contact_show = true;
//If the form is submitted
if(isset($_POST['submit'])) {
//Check to make sure that the name field is not empty
if(trim($_POST['contactname']) == '') {
$hasError = true;
} else {
$name = trim($_POST['contactname']);
}
//Check to make sure that the subject field is not empty
if(trim($_POST['subject']) == '') {
$hasError = true;
} else {
$subject = trim($_POST['subject']);
}
//Check to make sure sure that a valid email address is submitted
if(trim($_POST['email']) == '') {
$hasError = true;
} else if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$/i", trim($_POST['email']))) {
$hasError = true;
} else {
$email = trim($_POST['email']);
}
//Check to make sure comments were entered
if(trim($_POST['message']) == '') {
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['message']));
} else {
$comments = trim($_POST['message']);
}
}
//If there is no error, send the email
if(!isset($hasError)) {
$contact_show = false;
$emailTo = get_option('of_email_address');
$body = "Name: $name \r\nEmail: $email \r\nSubject: $subject \r\nComments:\r\n $comments";
$headers = 'From: <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
}
?>
<div id="top">
<h1><?php the_title(); ?></h1>
</div>
</div>
<div id="main_content">
<div id="contact">
<?php while ( have_posts() ) : the_post(); ?>
<?php endwhile; // end of the loop. ?>
<?php if ($contact_show == true) { ?>
<?php } ?>
<?php if(isset($hasError)) { //If errors are found ?>
<div class="redbox">
<p><?php _e('Please check if you\'ve filled all the fields with valid information. Thank you.') ?></p>
</div>
<?php } ?>
<?php if(isset($emailSent) && $emailSent == true) { //If email is sent ?>
<div class="greenbox">
<p>
<?php _e('Your message has been sent!') ?><br />
<?php echo $name; _e(' thank you for emailing us! We will get in touch with you soon.'); ?>
</p>
</div>
<?php } ?>
<form action="" method="post" id="contactForm"><!-- start contact form -->
<fieldset class="contact-fieldset">
<ul>
<li>
<label for="contactname"><?php _e('Name:') ?></label>
<input type="text" name="contactname" id="name" class="contact-input requiredContact" />
</li>
<li>
<label for="email"><?php _e('Email:') ?></label>
<input type="text" id="email" name="email" class="contact-input requiredContact cEmail" />
</li>
<li>
<label for="subject"><?php _e('Subject:') ?></label>
<input type="text" name="subject" id="subject" class="contact-input requiredContact" />
</li>
<li>
<label for="message"><?php _e('Message:') ?></label>
<textarea rows="6" style="overflow: hidden;" cols="40" id="message" name="message" class="contact-textarea
requiredContact"></textarea>
</li>
<li>
<input type="submit" value="<?php _e('send message'); ?>" name="submit" class="contact-submit"
/>
</li>
</ul>
</fieldset>
</form></div>
</div>