PHP电子邮件不工作 - 没有收到电子邮件
问题描述:
就当我按提交的电子邮件网站,它现在一切正常,但我没有收到电子邮件,有人请帮助?
PHP
<?php
$first_name = $_POST ['first_name'];
$last_name = $_POST ['last_name'];
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From:" . $first_name . $last_name;
$to = "[email protected]";
$subject = "New Message";
print_r($_POST);
mail ($to, $subject, $message, $headers);
echo "Your Message has been sent";
?>
HTML
<form action="contact.php" name="contact_form" method="post">
<p>
First name:
<input name="first_name" type="text"/>
</p>
<p>
Last name:
<input name="last_name" type="text"/>
</p>
<p>
<br>
E-Mail:
<input name="email" type="text"/>
</p>
<br>
<p>Type your enquiry</p>
<p><textarea name"message"></textarea></p>
<p>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="Reset">
</p>
</form>
旧错误消息+数据它被发送(第二图片)
答
从方法post
设置如下。
<form action="contact.php" name="contact_form" method="post">
在地址栏中的数据是默认get
method.But你在PHP中使用$_POST[]
file.So你没有得到的值发送至。
此外,在如下面contact.php
使用$headers
:
$headers = "From:" . $first_name . $last_name;
而且
mail ($to, $subject, $message,$headers);
也分号$subject
可变的末端。
$subject = "New Message";
和做以下....
$first_name = test_input($_POST ['first_name']);
$last_name = test_input($_POST ['last_name']);
$email = test_input($_POST['email']);
$message = test_input($_POST['message']);
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
当从用户输入的数据(用PHP装饰
1.Strip不必要的字符(额外的空间,制表符,换行符)( )函数)
2.取出反斜杠()从用户输入的数据(用PHP的stripslashes()函数)
答
更改您的PHP
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$message = $_POST['message'];
$headers = "From: " . $email;
$to = "[email protected]";
$subject = "New Message";
print_r($_POST);
mail($to, $subject, $message, $headers);
echo "Your Message has been sent";
它现在应该工作。 标题必须采用适当的格式(间距)。 “发件人”标题包含发件人的电子邮件地址。 在PHP中访问数组时,请不要使用spaces:wrong = $ array [“blah”],good = $ array [“blah”]。这同样适用于功能。
+0
我仍然没有运气,这可能是godaddy的问题吗? – Joshua
'From:'标题应该包含地址,而不是名称。 – Barmar
缺少分号 – Musa
为什么你回应说邮件没有检查mail()的返回值? – Barmar