使用PHP脚本通过HTML表单发送电子邮件

时间:2014-06-24 18:38:19

标签: php html forms email

我正在建立一个网站作为练习。它有一个“联系我们”页面,我在其中创建了一个表单。我已经用.php扩展名保存了该页面,相信在这种情况下,网页会将表单数据发送到另一个php页面。一旦按下发送按钮,它将导致带有html和php脚本的php页面,该脚本应自动发送电子邮件。但那并没有发生。这是php脚本:

<?php


if(isset($_POST['submit']))

{

     $name = $_POST['name'];
     $email = $_POST['email'];
    $mobile = $_POST['mobile'];
    $country = $_POST['country'];
    $city = $_POST['city'];
    $message = $_POST['contactusmessage'];

    $headers = 'xxx@xxx.com';


    $to = 'xxx@xxx.com';

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

        if($mail){
            echo"<p>Thanks $name for the message.</p>";
            echo"<p>We will reply to $email</p>";
        }
        else{
            echo "Mail sending failed."; 
        }

}

?>

请告诉我哪里出错了?

2 个答案:

答案 0 :(得分:5)

$headers = 'admin@bulkbuying.biz';跳出来看看这是一个无效的标题。这可能就是为什么你的邮件没有出去的原因。尝试将其更改为$headers = 'From: admin@bulkbuying.biz';

同时将$mail=mail($to,$message,$headers);更改为$mail=mail($to,'This is the subject',$message,$headers);,如下面的其他答案中所述。您将主题参数遗漏为mail()

答案 1 :(得分:1)

除了Brian指出的内容之外,您可能还想在mail()命令的调用中指定消息的主题,并指定信封发件人(以及在标题中指定发件人)。 mail()命令应该如下所示:

mail($to, "web form submittal", $message, $headers, "-f sender@senderdomain.com");