2012-08-16 30 views
0
<?php 
    session_start(); 

    $returnURL = $_POST["pageURL"].'#confirmation'; 

    if (empty($_POST["phone"]) || empty($_POST["email"]) || empty($_POST["name"]) || empty($_POST["address"])) { 

    $_SESSION["confirmation"] = "empty"; 
    header('Location: '.$returnURL); 
    exit; 

    } else { 

    $to = '[email protected]'; 
    $headers = 'From: ' . $_POST["name"] . '<' . $_POST["email"] . '>'; 
    $subject = 'Email from your landing page';   
    $message = (
    "You have received a inquiry from your landing page! \n\n Name: " . $_POST["name"] . " 
    \n Email: " . $_POST["email"] . " 
    \n Phone Number: " . $_POST["phone"] . " 
    \n Mailing Address: " . $_POST["address"] . " 
    \n Message: " . $_POST["message"] 
    ); 

    mail($to, $subject, $message, $headers); 

    $_SESSION["confirmation"] = 'yes'; 
    header('Location: '.$returnURL); 
    exit; 
    } 
?> 
+3

您是否收到一个错误?或者只是没有收到电子邮件? – Matt 2012-08-16 19:37:51

+0

您是否安装了'sendmail'或类似的软件包? – wanovak 2012-08-16 19:38:21

+6

我甚至没有收到这个问题。 – 2012-08-16 19:39:26

回答

0

请参阅mail函数的文档,它会返回一个值。检查并报告。同时在调试时禁用重定向:

$result = mail($to, $subject, $message, $headers); 
var_dump($result); 
exit; 
+0

尝试了这一点,它返回布尔(假) – user1604214 2012-08-16 19:52:08

+0

文档说:*“如果邮件成功接受传递返回TRUE,否则返回FALSE。”* Ergo:您的邮件不接受交付。请联系您的主机支持,并询问是否可以通过PHP发送电子邮件,或者您是否需要先进行一些设置。此外,您可能希望转储,主题,消息和标题,并将该信息传递给您的技术支持。 – hakre 2012-08-16 19:54:19

+0

这实际上可能是问题。我会检查一下。 – user1604214 2012-08-16 19:58:53

0

标题可能非常挑剔。尝试在发件人末尾添加新行。

$headers = 'From: ' . $_POST["name"] . '<' . $_POST["email"] . ">\r\n";