从主页发送邮件。我的代码中缺少什么?

时间:2012-08-23 18:32:24

标签: php html html-email

我希望能够从我的主页发送邮件,但它不能按我的意愿工作。我收到一封邮件,但它在家里没有说。只是说未知。我在两个不同的地方有这个。另一个地方,我使用其他textareas,在那里,我得到了我的邮件中的一切,它工作正常,但我正在尝试工作的其他地方我只希望他们添加电子邮件,然后它应该与所有信息一起发送。

我的页面上的代码:

<form id="subscribe" class="clearfix" method="post" action="get_mail.php">
    <div class="field alignleft">
       <input type="text" value="Enter your email" onclick="if(this.value=='Enter your email')this.value='';" onblur="if(this.value=='')this.value='Enter your email';" />
     </div>
     <div class="search-btn">
        <input type="submit" value="" />
     </div>
</form>

然后我有这个PHP脚本

<?php

    //-----------------------------------------------------
    //-----------------------------------------------------
    $address= "xxxxx.xxxxx@outlook.com";
    //-----------------------------------------------------
    //-----------------------------------------------------

    $name = $_REQUEST["name"];
    $email = $_REQUEST["email"];
    $website = $_REQUEST["website"];
    $subject .= "You have an email from your web site (from $name)! \n\n";
    $message_content = strip_tags($_REQUEST["message"]);

    $headers = "From: $name <$email>\n";
    $headers .= "Reply-To: $subject <$email>\n";

    $message = "--$mime_boundary\n\n";

    $message .= "You have an email from your web site: \n\n\n";
    $message .= "Name: $name \n\n";
    $message .= "Email: $email \n\n";
    $message .= "Website: $website \n\n";
    $message .= "Message: $message_content \n\n";

    $message .= "--$mime_boundary--\n\n";

    $mail_sent = mail($address, $subject, $message, $headers);
    echo $mail_sent ? "Success, mail sent!" : "Mail failed";

?>

2 个答案:

答案 0 :(得分:3)

两件事:

  1. 尝试使用“\ r \ n”替换$ header中的“\ n”。

  2. 据我所知,有些主机(我认为GoDaddy或Hostgator这样做)会覆盖已发送电子邮件中的“来自”值,并将其更改为您拥有的电子邮件。这意味着,如果您未在主机帐户中明确拥有“from@domain.com”,则无法从该地址发送电子邮件,并且将始终覆盖该电子邮件。您必须联系您的主人进行检查。我建议如果可能的话也检查另一台服务器上的脚本。

答案 1 :(得分:2)

您的所有表单字段都没有名称 - 您的代码在这里:

$name = $_REQUEST["name"];
$email = $_REQUEST["email"];
$website = $_REQUEST["website"];

需要名称为“name”,“email”和“website”的表单字段。例如,您的“电子邮件”字段需要如下所示:

<input type="text" name="email" ... />