PHP电子邮件不工作 - 没有收到电子邮件

问题描述:

问题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> 

旧错误消息+数据它被发送(第二图片)

enter image description here

enter image description here

+1

'From:'标题应该包含地址,而不是名称。 – Barmar

+2

缺少分号 – Musa

+0

为什么你回应说邮件没有检查mail()的返回值? – Barmar

从方法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()函数)

+0

谢谢,我仍然收到同样的错误,对于邮件部分是否是正确的? ($ to,$ subject,$ message,$ headers“From:”。$ first_name。$ last_name); – Joshua

+0

尝试'print_r($ _ POST);'你会得到值 –

+0

它看起来没有任何值,只是一个500 Gate Gate错误仍然 – Joshua

更改您的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