这是一个有效的联系表单代码,当我提交消息时,它会说谢谢,消息发送成功,但很遗憾,我没有收到任何消息。我在本地主机上的wordpress上使用它。
我应该改变什么才能得到这些信息??请帮忙
<?php
if(isset($_POST[\'submitted\'])) {
if(trim($_POST[\'contactName\']) === \'\') {
$nameError = \'Please enter your name.\';
$hasError = true;
} else {
$name = trim($_POST[\'contactName\']);
}
if(trim($_POST[\'email\']) === \'\') {
$emailError = \'Please enter your email address.\';
$hasError = true;
} else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\\.[a-z]{2,4}$/i", trim($_POST[\'email\']))) {
$emailError = \'You entered an invalid email address.\';
$hasError = true;
} else {
$email = trim($_POST[\'email\']);
}
if(trim($_POST[\'subject\']) === \'\') {
$subjectError = \'Please enter a subject.\';
$hasError = true;
} else {
$subject = trim($_POST[\'subject\']);
}
if(trim($_POST[\'comments\']) === \'\') {
$commentError = \'Please enter a message.\';
$hasError = true;
} else {
if(function_exists(\'stripslashes\')) {
$comments = stripslashes(trim($_POST[\'comments\']));
} else {
$comments = trim($_POST[\'comments\']);
}
}
if(!isset($hasError)) {
$emailTo = get_option(\'tz_email\');
if (!isset($emailTo) || ($emailTo == \'\') ){
$emailTo = get_option(\'admin_email\');
}
$subject = \'[PHP Snippets] From \'.$name;
$body = "Name: $name \\n\\nEmail: $email \\n\\nComments: $comments";
$headers = \'From: \'.$name.\' <\'.$emailTo.\'>\' . "\\r\\n" . \'Reply-To: \' . $email;
wp_mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
} ?>
<hr class="no-margin" />
<div class="blog-container section-content">
<div class="container">
<div class="row">
<div class="col-md-8">
<div class="box-layer custom-padding">
<div id="container">
<div id="content">
<div class="align-center">
<div class="entry-content">
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks">
<p>Thanks, your email was sent successfully.</p>
</div>
<?php } else { ?>
<?php the_content(); ?>
<?php if(isset($hasError) || isset($captchaError)) { ?>
<p class="error">Sorry, an error occured.<p>
<?php } ?>
<form action="<?php the_permalink(); ?>" id="contactForm" method="post" class="general-form">
<div class="contactform">
<p>
<input type="text" name="contactName" class="form-control" id="contactName" placeholder="Your Name.." value="<?php if(isset($_POST[\'contactName\'])) echo $_POST[\'contactName\'];?>" class="required requiredField" />
<?php if($nameError != \'\') { ?>
<span class="error"><?=$nameError;?></span>
<?php } ?>
</p>
<p>
<input type="text" name="email" id="email" class="form-control" placeholder="Your Email.." value="<?php if(isset($_POST[\'email\'])) echo $_POST[\'email\'];?>" class="required requiredField email" />
<?php if($emailError != \'\') { ?>
<span class="error"><?=$emailError;?></span>
<?php } ?>
</p>
<p>
<input type="text" name="subject" id="subject" class="form-control" placeholder="Your Subject.." value="<?php if(isset($_POST[\'subject\'])) echo $_POST[\'subject\'];?>" class="required requiredField subject" />
<?php if($subjectError != \'\') { ?>
<span class="error"><?=$subjectError;?></span>
<?php } ?>
</p>
<p>
<textarea name="comments" id="commentsText" class="form-control" placeholder="Your Message" rows="4" cols="100" class="required requiredField"><?php if(isset($_POST[\'comments\'])) { if(function_exists(\'stripslashes\')) { echo stripslashes($_POST[\'comments\']); } else { echo $_POST[\'comments\']; } } ?></textarea>
<?php if($commentError != \'\') { ?>
<span class="error"><?=$commentError;?></span>
<?php } ?>
</p>
<p>
<input type="submit" class="btn btn-primary no-border" value="Send Message"></input>
</p>
</div>
<input type="hidden" name="submitted" id="submitted" value="true" />
</form>
<?php } ?>
</div>
</div>
</div>
</div></div>
</div>
SO网友:Rick Hellewell
mail()函数(由wp\\u mail()函数使用,假设没有其他邮件插件添加到您的站点)将邮件发送到域的邮件服务器。它只知道邮件服务器是否收到了邮件。它不知道邮件是否真的是由您的邮件服务器发送的。
可能导致问题的原因之一是,通过mail()函数发送的“发件人”电子邮件必须是您域中的电子邮件地址。它不必存在,只需来自您的域。
例如,如果您的域是www.example。com,则“发件人”电子邮件需要为[email protected]\'。不可能是\'[email protected]\'。这将被您的邮件服务器阻止。
因此,重要的是,您的邮件的发件人必须在您的域中。如果不是,您的电子邮件服务器(或收件人的邮件服务器)将感觉到该邮件可能是垃圾邮件,并将拒绝/阻止/不发送您的邮件。
您可以将“答复”标题值设置为任何内容,即使是不在您域中的电子邮件,但发件人必须是与您域匹配的电子邮件地址。
请注意,wp\\u mail()函数从“默认Wordpress电子邮件”帐户发送邮件。您必须确保此设置正确。此设置位于设置、常规、管理帐户中。该值必须设置为[email protected],替换您的域名。