我一直在到处寻找,似乎找不到如何使这个工作-它只是不发送电子邮件到我的地址。下面是我的HTML表单:
<form id="contactMe" name="contact" method="post" novalidate="novalidate">
<fieldset>
<label for="name" id="name">Name<span class="required">*</span></label>
<input type="text" name="name" id="name" size="30" value="" required="">
<label for="email" id="email">Email<span class="required">*</span></label>
<input type="text" name="email" id="email" size="30" value="" required="">
<label for="phone" id="phone">Phone</label>
<input type="text" name="phone" id="phone" size="30" value="">
<label for="Message" id="message">Message<span class="required">*</span></label>
<textarea name="message" id="message" required=""></textarea>
<label for="Answer" id="answerswer">Name the house pet that says “<i>woof</i>“<span class="required">*</span></label>
<input type="text" name="answerswer" value="" required=""></br>
<input id="submit" type="submit" name="submit" value="Send">
</fieldset>
<div id="success">
<span class="green textcenter">
<p>Your message was sent successfully! I will be in touch as soon as I can.</p>
</span>
</div> <!-- closes success div -->
<div id="error">
<span><p>Something went wrong, try refreshing and submitting the form again.</p></span>
</div> <!--close error div-->
</form>
这是我的PHP保存为mail。PHP:
<?php
$to = "someone@gmail.com";
$from = $_REQUEST['email'];
$name = $_REQUEST['name'];
$headers = "From: $from";
$subject = "You have a message from your.";
$fields = array();
$fields{"name"} = "name";
$fields{"email"} = "email";
$fields{"phone"} = "phone";
$fields{"message"} = "message";
$body = "Here is what was sent:'n'n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s'n",$b,$_REQUEST[$a]); }
mail("maytee.kneitz@gmail.com",$subject,$message,"From: $from'n");
echo 'Mail sent';
?>
这是我第一次在邮件/联系表单上工作,所以很抱歉,如果这是一个明显的问题。我就是找不到。任何指导将不胜感激。
我确实有验证在我的脚本(没有张贴在这里)。
您没有定义表单操作。试试这个:
<form id="contactMe" name="contact" method="post" action="mailer.php" novalidate="novalidate">
默认情况下,表单将被提交到当前位置,除非另有指定。在您的示例中,将其指向邮件脚本所在的位置