我希望能够从我的主页发送邮件,但它不能按我的意愿工作。我收到一封邮件,但它在家里没有说。只是说未知。我在两个不同的地方有这个。另一个地方,我使用其他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";
?>
答案 0 :(得分:3)
两件事:
尝试使用“\ r \ n”替换$ header中的“\ n”。
据我所知,有些主机(我认为GoDaddy或Hostgator这样做)会覆盖已发送电子邮件中的“来自”值,并将其更改为您拥有的电子邮件。这意味着,如果您未在主机帐户中明确拥有“from@domain.com”,则无法从该地址发送电子邮件,并且将始终覆盖该电子邮件。您必须联系您的主人进行检查。我建议如果可能的话也检查另一台服务器上的脚本。
答案 1 :(得分:2)
您的所有表单字段都没有名称 - 您的代码在这里:
$name = $_REQUEST["name"];
$email = $_REQUEST["email"];
$website = $_REQUEST["website"];
需要名称为“name”,“email”和“website”的表单字段。例如,您的“电子邮件”字段需要如下所示:
<input type="text" name="email" ... />