我有这个代码,应该发送邮件到一个地址。问题是:在标题中我应该得到像“Bob Marley”这样的名字,但是如果名字大于一个单词,它会说“(未知发件人)”。如果名称只是一个单词,它就可以了。如果我将$ _POST ['nume']值连接到$ message,它就在那里。出于某种原因,在标题中,它不会像它应该的那样工作。
<form name="contact" method="post" class="clearfix" id="formular">
<input class="inputC" type="text" placeholder="Full Name" id="numeCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="nume"/>
<input class="inputC" type="text" placeholder="E-mail Address" id="adresaCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="adrMail"/>
<input class="inputC" type="text" placeholder="What services do you need?" id="serviciiCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="servicii"/>
<div class="sumarise">
<textarea class="textAreaC" placeholder="Please summarize your project..." id="textArCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="descriere"></textarea>
</div>
<div class="sB clearfix">
<input class="submitC" type="submit" value="Send Message" />
</div>
</form>
<?php
if(isset($_POST['nume'], $_POST['adrMail'], $_POST['descriere']))
{
/*echo "<script> return checkForm();</script>";*/
$to = "radu.mircea.andrei@gmail.com";
$subject = $_POST['servicii'];
$message = $_POST['descriere'];
$name = $_POST['nume'];
$headers= "From: ".$name."\n".'Reply-To: '.$_POST['adrMail'];
mail($to,$subject,$message,$headers);
}
?>
答案 0 :(得分:2)
“to”地址需要符合RFC 2822 - 也许起始地址也是:
From: Birthday Reminder <birthday@example.com>
PHP文档还指出\n
应该是有效的,如果您遇到\r\n
问题,建议使用它 - 所以我认为这不太可能是问题,尽管尝试没有任何害处那也是。
答案 1 :(得分:0)
我将把这个作为答案,因为我认为你要注意这一点非常重要。
使用mail()
功能时存在一个漏洞,就像使用用户定义的From
标头一样。在此处查看此问题:Proper prevention of mail injection in PHP
然而,要解决您的实际问题: