![](/img/trans.png)
[英]PHP contact form email being received with no sender and email is not being populated in the body
[英]PHP Contact Form Not Being Received In Email
我知道已经有一些这样的帖子了,我已经阅读了,但是找不到解决我问题的方法。 PHP和HTML看起来不错,所以我不确定为什么我没有收到提交的联系表中的任何电子邮件。
这是PHP:
<?php
$Fname = $_POST ['Fname'];
$Lname = $_POST ['Lname'];
$email = $_POST ['email'];
$message = $_POST ['message'];
$to = 'myName@mywebsite.com';
$subject = 'Contact From My Website';
$msg = " First Name: $Fname/n" .
"Last Name: $Lname/n" .
"Email: $email/n" .
"Message: $message";
mail ($to, $subject, $msg,"From: " . $Fname . $Lname);
$confirm = "Thank you for contacting us! Please allow 48 hours for a representative to respond. Click <a href='contact.php'>here</a> to return to the previous page.";
?>
这是HTML表单代码:
<form id="form1" name="form1" method="post" action="send.php">
<tr>
<label><td width="160px" class="labels">First Name: </td>
<td class="input"><input type="text" name="Fname" id="Fname"/></td>
</label>
</tr>
<tr>
<label><td class="labels">Last Name: </td>
<td class="input"><input type="text" name="Lname" id="Lname"/></td>
</label>
</tr>
<tr>
<label><td class="labels">Email: </td>
<td class="input"><input type="email" name="email" id="email"/></td>
</label>
</tr>
<tr>
<label><td class="labels">Message: </td>
<td class="input"><textarea name="message" id="message" cols="30" rows="5"></textarea></td>
</label>
</tr>
<tr>
<td class="labels"><input type="submit" name="submit" id="submit" value="Submit"/></td>
</tr>
</form>
任何帮助将不胜感激
\\n
, mail()
标头的使用不当,并尝试在末尾echo
成功消息。
这是一个经过测试且可以正常工作的邮件处理程序脚本。
注意 :我添加了一个if{isset
条件。
用您自己的电子邮件地址更改email@example.com
。
<?php
if(isset($_POST['submit']))
$Fname = $_POST['Fname'];
$Lname = $_POST['Lname'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = "email@example.com"; // <<< change this to your own E-mail address
$subject = "Contact From My Website";
$msg = "First Name: $Fname\n" . "Last Name: $Lname\n" . "Email: $email\n" . "Message: $message";
$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
mail($to, $subject, $msg, $headers);
echo "Thank you for contacting us! Please allow 48 hours for a representative to respond. Click <a href='contact.php'>here</a> to return to the previous page.";
?>
请通过访问以下内容来阅读mail( )
函数及其对标题的正确使用:
该页面上有很多示例。
一个主要错误是您对/n
的使用,如果有的话,都需要更改为\\n
。
仅此而已,最终会使您的处理程序失败 。
“发件人”不应包含名称,而应包括“发件人”电子邮件地址。
所以,代替
"From: " . $Fname . $Lname
你应该在做
"From: ". $myEmail
这是php手册中的有效标头:
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
我想Puggan和Fred也会因为这个答案而获得赞誉,因为他们已经发布了显而易见的答案,但尚未做出答案。
您还应该确保消息标签的ID与$ _POST ['msg']相匹配,因此您不应在一个地方使用'msg'而在另一个地方使用'message'。
仅供参考:跳过函数名称和参数参数之间的空格''。 即
$_POST ['stuff'];
加
$headers = "From:" . $Fname . $Lname;
并使用此:
mail ($to, $subject, $msg, $headers);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.