在mail()函数中,'From:'仅显示第一个世界

时间:2012-08-16 11:12:28

标签: php email

我有这个代码,应该发送邮件到一个地址。问题是:在标题中我应该得到像“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);                                      
    }
  ?>

2 个答案:

答案 0 :(得分:2)

“to”地址需要符合RFC 2822 - 也许起始地址也是:

From: Birthday Reminder <birthday@example.com>

请参阅PHP Mail examples

PHP文档还指出\n应该是有效的,如果您遇到\r\n问题,建议使用它 - 所以我认为这不太可能是问题,尽管尝试没有任何害处那也是。

答案 1 :(得分:0)

我将把这个作为答案,因为我认为你要注意这一点非常重要。

使用mail()功能时存在一个漏洞,就像使用用户定义的From标头一样。在此处查看此问题:Proper prevention of mail injection in PHP

然而,要解决您的实际问题:

  • 尝试使用\ r \ n(如@Sudhir所说)(我发现\ r \ n更符合某些邮件客户端)
  • 输入电子邮件,就像@Sohnee所说