我希望能够从主页发送邮件,但它不能按我的意愿工作。我收到一封邮件,但上面没有写在家里。只是说未知。我把这个放在两个不同的地方。在另一个地方,我使用其他文本区域,在那里我可以收到邮件中的所有内容,效果很好,但在我尝试工作的另一个位置,我只想让他们添加电子邮件,然后它应该与所有信息一起发送。
我页面上的代码:
<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";
?>
两件事:
-
尝试将$headers中的"''n"替换为"''r''n"。
-
据我所知,一些主机(例如,我认为GoDaddy或Hostgator会这样做)会覆盖发送的电子邮件中的"from"值,并将其更改为您随身携带的值。这意味着,如果您没有明确地from@domain.com"在您的托管帐户中,您将无法从该地址发送电子邮件,并且它将始终被覆盖。您必须联系您的主机进行检查。如果可能,我建议您也在另一台服务器上检查脚本。
您的表单字段似乎都没有名称-您的代码在这里:
$name = $_REQUEST["name"];
$email = $_REQUEST["email"];
$website = $_REQUEST["website"];
需要名称为"名称"、"电子邮件"answers"网站"的表单字段。例如,您的"电子邮件"字段需要如下所示:
<input type="text" name="email" ... />