2012-08-16 51 views
-1

我有这段代码,应该发送邮件到一个地址。问题是:在头文件中,我应该得到像“Bob Marley”这样的名称,但是如果名称大于一个单词,它会显示“(未知发件人)”。如果这个名字恰好是一个单词,它就会起作用。如果我将$ _POST ['nume']值连接到$消息,它就在那里。出于某种原因,在标题中,它不会像它应该那样工作。在mail()函数中,'From:'只显示第一个世界

<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 = "[email protected]";                    
    $subject = $_POST['servicii']; 
    $message = $_POST['descriere'];           
    $name = $_POST['nume']; 
    $headers= "From: ".$name."\n".'Reply-To: '.$_POST['adrMail']; 
    mail($to,$subject,$message,$headers);          
    } 
    ?> 
+0

尝试使用\ r \ n而不是只\ n的头。 – Henkealg 2012-08-16 11:15:17

+0

#firstworldproblems – 2012-08-16 11:17:45

+0

尝试使用PHPMailer,它更易于使用和配置。 – 2012-08-16 11:18:04

回答

0

我打算把这个作为答案,因为我认为这对你来说很重要。

使用mail()函数时存在一个漏洞,就像用户定义的From头一样。看到这个问题在这里:Proper prevention of mail injection in PHP

但是解决您最实际的问题:

  • 尝试使用\ r \ n以及(如@Sudhir说)(我发现\ r \ n是一些邮件更柔顺客户端)
  • 放在太像@Sohnee电子邮件说
+0

这是作为一个迟到的回复,但谢谢你的链接。知道的确很重要。 – 2012-10-02 22:23:26

2

的 “到” 地址需要符合RFC 2822 - 也许是从地址也做:

From: Birthday Reminder <[email protected]> 

PHP Mail examples

PHP文档还指出,\n应该是有效的,如果您在\r\n上遇到问题,建议您推荐 - 所以我认为这不太可能是问题所在,尽管这样做也没有什么坏处。

+1

+1名称不是电子邮件地址。打我到那一个:) – Waygood 2012-08-16 11:24:52

+0

我知道这是一个迟到的答复,但谢谢你的回答。 – 2012-10-02 22:25:19